黃微、申剛玉
隨著Web技術(shù)的深入發(fā)展,傳統(tǒng)的客戶機/服務(wù)器結(jié)構(gòu)的企業(yè)級應用系統(tǒng)已逐漸為瀏覽器/中間層/后臺數(shù)據(jù)庫服務(wù)器的三層結(jié)構(gòu)所代替,這種結(jié)構(gòu)的改變無論是在Microsoft的Windows DNA中還是在以java技術(shù)為核心的應用中都得到了具體的體現(xiàn)。Servlet技術(shù)的出現(xiàn)推動了以Java為核心技術(shù)的企業(yè)級三層Web應用的發(fā)展,它最適合于開發(fā)與Web服務(wù)器緊密相關(guān)的中間層。
1.利用Servlet技術(shù)的三層結(jié)構(gòu)解決方案
企業(yè)級Web應用通常包含Web瀏覽器、中間層和后臺數(shù)據(jù)庫服務(wù)器三個層次。
(1)Web瀏覽器
Web瀏覽器是三層結(jié)構(gòu)中的第一個層次,利用Web瀏覽器作為客戶端,使客戶面對一個統(tǒng)一的應用界面。
(2)Servlet中間層
中間層是指運行在服務(wù)器中的,聯(lián)系Web瀏覽器與后臺數(shù)據(jù)庫服務(wù)器的軟件。目前可用于實施中間層的技術(shù)包含CGI、Java及Servlet等。由于Servlet由Web服務(wù)器進行加載,利用Java語言進行開發(fā),它在性能、可靠性以及可移植性等方面均比CGI有了長足的進步,因此Servlet是目前最適合實現(xiàn)中間層的技術(shù)。
(3)后臺數(shù)據(jù)庫服務(wù)器
后臺數(shù)據(jù)庫服務(wù)器是用戶存放數(shù)據(jù)信息的地方,中間層可以通過ODBC(對CGI中間層)或是JDBC(對Servlet中間層)來訪問后臺數(shù)據(jù)庫。
2.規(guī)劃一個三層Web應用
下面用一個簡單的Web三層應用的例子說明如何利用Servlet技術(shù)構(gòu)造中間層。這里我們實現(xiàn)一個最簡單的圖書治理系統(tǒng)。
(1)用戶可以通過Web瀏覽器將圖書信息提交給中間層,由中間層將圖書數(shù)據(jù)入庫。
(2)用戶可以通過Web瀏覽器查詢圖書信息,由中間層取得圖書數(shù)據(jù)交給瀏覽器顯示。
系統(tǒng)是一個采用三層結(jié)構(gòu)的Web應用,數(shù)據(jù)庫服務(wù)器采用Microsoft access,中間層是一個Servlet,系統(tǒng)的流程包含四個步驟∶
* 用戶在Html頁面中輸入圖書信息,輸入的數(shù)據(jù)提交給中間層的Book?Servlet;
* 中間層BookServlet構(gòu)建一個SQL語句,將SQL語句提交給JDBC;
* 后臺數(shù)據(jù)庫服務(wù)器執(zhí)行SQL語句并將結(jié)果返回給中間層BookServlet;
* 中間層BookServlet根據(jù)數(shù)據(jù)庫返回的結(jié)構(gòu)建一個HTML返回給客戶端瀏覽器。
對系統(tǒng)的軟件結(jié)構(gòu)了解之后,我們給出整個系統(tǒng)的設(shè)計規(guī)劃:
* 設(shè)計數(shù)據(jù)庫結(jié)構(gòu)
為簡化起見,圖書數(shù)據(jù)庫僅包含一個表BookTable,在該表中包含以下字段:
列名稱
類型
長度
說明
bookname
string
50
書名
isbn
string
50
圖書統(tǒng)一書號
* 設(shè)計瀏覽器HTML頁面
用戶可以在該頁面中查詢已入庫的圖書,或輸入新的圖書信息。
(3)設(shè)計中間層BookServlet
用Servlet技術(shù)實現(xiàn)的中間層在瀏覽器和數(shù)據(jù)庫服務(wù)器之間完成“粘合”作用(我們將其命名為BookServlet),它根據(jù)瀏覽器HTML傳遞的參數(shù)創(chuàng)建合適的SQL語句,將SQL語句提交給后臺數(shù)據(jù)庫服務(wù)器,然后根據(jù)SQL語句執(zhí)行的結(jié)果產(chǎn)生一個HTML頁面?zhèn)鬟f給瀏覽器。
新聞熱點
疑難解答