隨著Web技術的深入發展,傳統的客戶機/服務器結構的企業級應用系統已逐漸為浏覽器/中間層/後台數據庫服務器的三層結構所代替,這種結構的改變無論是在Microsoft的Windows DNA中還是在以Java技術為核心的應用中都得到了具體的體現。Servlet技術的出現推動了以Java為核心技術的企業級三層Web應用的發展,它最適合於開發與Web服務器緊密相關的中間層。
1.利用Servlet技術的三層結構解決方案
企業級Web應用通常包含Web浏覽器、中間層和後台數據庫服務器三個層次。
(1)Web浏覽器
Web浏覽器是三層結構中的第一個層次,利用Web浏覽器作為客戶端,使客戶面對一個統一的應用界面。
(2)Servlet中間層
中間層是指運行在服務器中的,聯系Web浏覽器與後台數據庫服務器的軟件。目前可用於實施中間層的技術包含CGI、Java及Servlet等。由於Servlet由Web服務器進行加載,利用Java語言進行開發,它在性能、可靠性以及可移植性等方面均比CGI有了長足的進步,因此Servlet是目前最適合實現中間層的技術。
(3)後台數據庫服務器
後台數據庫服務器是用戶存放數據信息的地方,中間層可以通過ODBC(對CGI中間層)或是JDBC(對Servlet中間層)來訪問後台數據庫。
2.規劃一個三層Web應用
下面用一個簡單的Web三層應用的例子說明如何利用Servlet技術構造中間層。這裡我們實現一個最簡單的圖書管理系統。
(1)用戶可以通過Web浏覽器將圖書信息提交給中間層,由中間層將圖書數據入庫。
(2)用戶可以通過Web浏覽器查詢圖書信息,由中間層取得圖書數據交給浏覽器顯示。
系統是一個采用三層結構的Web應用,數據庫服務器采用Microsoft Access,中間層是一個Servlet,系統的流程包含四個步驟∶
* 用戶在HTML頁面中輸入圖書信息,輸入的數據提交給中間層的BookServlet;
* 中間層BookServlet構建一個SQL語句,將SQL語句提交給JDBC;
* 後台數據庫服務器執行SQL語句並將結果返回給中間層BookServlet;
* 中間層BookServlet根據數據庫返回的結構建一個HTML返回給客戶端浏覽器。
對系統的軟件結構了解之後,我們給出整個系統的設計規劃:
* 設計數據庫結構
為簡化起見,圖書數據庫僅包含一個表BookTable,在該表中包含以下字段:
列名稱 類型 長度 說明
bookname string 50 書名
isbn string 50 圖書統一書號
* 設計浏覽器HTML頁面
用戶可以在該頁面中查詢已入庫的圖書,或輸入新的圖書信息。
(3)設計中間層BookServlet
用Servlet技術實現的中間層在浏覽器和數據庫服務器之間完成“粘合”作用(我們將其命名為BookServlet),它根據浏覽器HTML傳遞的參數創建合適的SQL語句,將SQL語句提交給後台數據庫服務器,然後根據SQL語句執行的結果產生一個HTML頁面傳遞給浏覽器。