基于A(yíng)ndroid的嵌入式Web服務(wù)器設計
2.2 Servlet和SQLite的設計與使用
Servlet是位于服務(wù)器端的Java應用程序,它由Web服務(wù)器進(jìn)行加載。Servlet的主要功能在于交互式地瀏覽和修改數據,生成動(dòng)態(tài)Web內容。Servlet可以用來(lái)擴充Java—enabled Server的基本功能,目前最常使用的是增加Web服務(wù)器的互動(dòng)性。但它可以被用來(lái)擴充任何種類(lèi)的服務(wù)器,如FTP服務(wù)器。
最早用來(lái)產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)的方法是CGI(Common Gateway Interface)。它的做法是透過(guò)Web服務(wù)器將客戶(hù)端的請求送給一個(gè)進(jìn)程,這個(gè)進(jìn)程再將請求的執行結果傳回客戶(hù)端,只要是一個(gè)新的請求,不管它是否和先前的請求相同,CGI都產(chǎn)生一個(gè)新的進(jìn)程來(lái)處理,這樣非常耗費系統資源。在Servlet中每一個(gè)請求都是由同一個(gè)進(jìn)程下的線(xiàn)程所服務(wù),而且相同的請求會(huì )由同一個(gè)線(xiàn)程所執行。同時(shí)Servlet使用Java語(yǔ)言來(lái)開(kāi)發(fā)的,具有跨平臺特性,而這個(gè)優(yōu)點(diǎn)更是CGI所沒(méi)有的。因此,Servlet提供了強有力且具有效率的技術(shù)來(lái)取代CGI。
要在一個(gè)i—jetty的web工程中支持servlet,大致的步驟如下:
1)在ecplise中新建Android項目,并添加servlet的支持文件;
2)在項目中新建servlet并配置web.xml,編寫(xiě)servlet;
3)編譯完成后會(huì )自動(dòng)生成.class文件,需要將.class文件轉換成Android能執行的.dex文件;
4)將.dex文件和web.xml等文件按一定順序保存在一個(gè)web工程目錄下,然后打包成一個(gè)war包。
SQLite是一款輕型的數據庫,能夠跟很多程序語(yǔ)言相結合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著(zhù)名的數據庫管理系統來(lái)講,它的處理速度比它們都快。不像常見(jiàn)的客戶(hù)端/服務(wù)器結構范例,SQLite引擎不是個(gè)程序與之通信的獨立進(jìn)程,而是連接到程序中成為它的一個(gè)主要部分。所以主要的通信協(xié)議是在編程語(yǔ)言?xún)鹊闹苯覣PI調用。這在消耗總量、延遲時(shí)間和整體簡(jiǎn)單性上有積極的作用。整個(gè)數據庫(定義、表、索引和數據本身)都在宿主主機上存儲在一個(gè)單一的文件中。Android操作系統采用標準SQLite數據庫,提供管理數據庫相關(guān)的API。所以,只要在Servlet中引入開(kāi)發(fā)Android程序提供的API,就能實(shí)現用Servlet操作SQLite。Setv let調用SQLite數據庫的方法如下:
首先是數據庫的建立,在A(yíng)ndroid中使用SQLiteDatabase的靜態(tài)方法openOrCreateDatabase(String path,SQLiteDatabae.Cursor Fact ory factory)打開(kāi)或者創(chuàng )建一個(gè)數據庫。然后創(chuàng )建表,為數據庫添加插入數據,刪除數據,修改數據,查詢(xún)數據等功能。最后是Servlet的設計,在eclipse中建立Androidproiect,在Web工程中導入android.jar,再引入需要的操作數據庫的類(lèi):

評論