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