本文向大家介紹JSP和JavaBean模型,可能好多人還不知道JSP和JavaBean模型,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
運用JSP/Servlet實現的web動態交互,主要采用JSP和JavaBean模型還有JSP和JavaBean+Servlet模型。本文分別介紹這兩種模型,並比較它們的優缺點。
一.JSP和JavaBean模型
模型的結構如下圖所示,稱之為JSP和JavaBean模型。其工作原理是:當浏覽器發出請求時,JSP接收請求並訪問JavaBean。若需要訪問數據庫或後台服務器,則通過JavaBean連接數據庫或後台服務器,執行相應的處理。JavaBean將處理的結果數據交給JSP。JSP提取結果並重新組織後,動態生成HTML頁面,返回給浏覽器。用戶從浏覽器顯示的頁面中得到交互的結果。
JSP和JavaBean模型充分利用了JSP技術易於開發動態網頁的特點,頁面顯示層的任務由JSP但它也含事物邏輯層的內容)承擔,JavaBean主要負責事務邏輯層和數據層的工作。JSP和JavaBean模型依靠幾個JavaBean組件實現具體的應用功能,生成動態內容,起最大的特點就是簡單。
二.JSP和JavaBean+Servlet模型
JSP和JavaBean+Servlet模型的體系結構如下圖所示,稱之為JSP和JavaBean和Servlet模型。它是一種采用基於模型視圖控制器Model和View和Controller)的設計模型,即MVC模型。該模型將JSP程序的功能分為3個層次:Model模型)層、View視圖)層、Controller控制器層)。Model層實現業務邏輯,包括了Web應用程序功能的核心,負責存儲與應用程序相關的數據;View層用於用戶界面的顯示,它可以訪問Model層的數據,但不能更改這些數據;Controller層主要負責Model和View層之間的控制關系。
具體實現時,JavaBean作為模型層,Servlet作為控制層,JSP作為視圖層。每層的作用如下:
1.JavaBean作為Model層,實現各個具體的應用邏輯和功能。
2.Servlet作為Controller層,負責處理HTTP請求,包括:
◆對輸入數據的檢查和轉換。
◆通過JavaBean訪問數據庫。
◆初始化JSP頁面中要用到的JavaBean或對象。
◆根據處理中不同的分支和結果,決定轉向那個JSP等。
3.JSP作為View層,負責生成交互後返回的界面。它主要通過信息共享,獲取Servlet生成的對象或JavaBean,從中取出數據,插入到HTML頁面中。
該模型的工作原理是:所有的請求都被發送給作為控制器的Servlet。Servlet接收請求,並根據請求信息將它們分發給相應的JSP頁面來響應;同時Servlet還根據JSP的需求生成相應的JavaBean對象並傳輸給JSP。JSP通過直接調用方法或利用UseBean的自定義標簽,得到 JavaBean中的數據。
這種設計模式通過Servlet和JavaBean的合作來實現交互處理,很好的實現了表示層、事務邏輯層和數據的分離。
三.兩種模型的比較
從以上對兩種模型的說明來看,JSP和JavaBean模型和JSP和JavaBean+Servlet模型的整體結構都比較清晰,易於實現。它們的基本思想都是實現表示層、事務邏輯層和數據層的分離。這樣的分層設計便於系統的維護和修改。兩種模型的主要區別表現在:
1.處理流程的主控部分不同。JSP和JavaBean模型利用JSP作為主控部分,將用戶的請求、JavaBean和響應有效的鏈接起來。JSP和JavaBean+Servlet模型利用Servlet作為主控部分,將用戶的請求、JavaBean和響應有效的鏈接起來。
2.實現表示層、事務邏輯層和數據層的分離程度不同。JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更好的分離效果。當事務邏輯比較復雜、分支較多或需要涉及多個JavaBean組件時,JSP和JavaBean模型常常會導致JSP文件中嵌入大量的腳本或Java代碼。特別是大型項目開發中,由於頁面設計和邏輯處理分別由不同的專業人員承擔,如果JSP 有相當一部分處理邏輯和頁面描述混在一起,這就有可能引起分工不明確,不利於兩個部分的獨立開發和維護,影響項目的施工和管理。在JSP和JavaBean+Servlet模型中,由 Servlet處理HTTP請求,JavaBean承擔事務邏輯處理,JSP僅負責生成網頁的工作,所以表現層的混合問題比較輕,適合於不同專業的專業人員獨立開發Web項目中的各層功能。
3.適應於動態交互處理的需求不同。當事務邏輯比較負責、分支較多或需要涉及很多JavaBean組件時,由於JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更清晰的頁面表現、更明確的開發模塊的劃分,所以使用JSP和JavaBean+Servlet模型比較適合。然而,JSP和JavaBean+Servlet模型需要編寫Servlet程序,Servlet程序需要的工具是Java集成開發環境,編程工作量比較大。對於簡單的交互處理,利用JSP和JavaBean模型,JSP主要是使用HTML工具開發,然後再插入少量的Java代碼就可以實現動態交互。在這種情況下,使用JSP和JavaBean模型更加方便快捷。
JSP和JavaBean模型和JSP和JavaBean+Servlet模型這兩種用於開發Web應用的方法都有很好的使用性。當然,實現動態交互的Web應用,不限於這兩種模型。在實際Web應用的開發過程中,需要根據系統特點、客戶需求及處理邏輯的特性,選擇合適的模型,力求使整個應用的體系結果更加合理,從而實現不同的交互處理。