?? 使用javabean高效處理jsp(1).txt
字號:
作者:Eazily
email: Eazily@yeah.net
日期:6/12/2001 2:48:14 PM
摘要:JavaServer Pages Model II的一個基本思想就是將表現(xiàn)(HTML)和處理邏輯分開。這篇文章介紹的是一個高效、可重用的設(shè)計方法,將動態(tài)的內(nèi)容、處理和驗證由JavaServer Page中分離出來,放到一個相應(yīng)的JavaBean中。它使用Template Method的設(shè)計方法,可提高代碼在整個Web應(yīng)用中的重用性。此外,它還介紹了在一個HTTP Session中bean間如何通信的簡單技巧。
JavaServer Pages(JSP)技術(shù)提供了許多的特性,可讓你簡易和快速地開發(fā)Web應(yīng)用。不過,如果你無計劃和結(jié)構(gòu)地使用這些技術(shù),你的JSP代碼將會是各種HTML標(biāo)記、JSP標(biāo)記和Java代碼的混合,很難于看懂、調(diào)試和維護(hù)。
這里的目標(biāo)是將全部的JSP處理代碼封裝到JavaBean中。這種方法的好處是HTML編程者和美工可以做表現(xiàn)的開發(fā)(使用HTML編輯器),而Java編程者可以集中開發(fā)編程邏輯。此外,這種方法可便于你為同一個Web應(yīng)用提供不同的外觀。
我將介紹的架構(gòu)使用Template Method方法,可集中實現(xiàn)整個應(yīng)用的共有設(shè)計部分和實現(xiàn)每個JSP的共有處理。就這個例子,共有的處理包括有頁面狀態(tài)管理、共有的頁面處理、共有的錯誤處理,以及在頁面間共享信息的技術(shù)。所有這些僅是定義一次,你可在頁面設(shè)計時再處理特定的細(xì)節(jié)。
我將以一個簡單的"投票"應(yīng)用為例,介紹如何使用這個架構(gòu)。你應(yīng)有基本的JSP和Java知識,并且最好懂得一些UML知識。
總的靜態(tài)結(jié)構(gòu)
這個部分將介紹該架構(gòu)核心部分的概觀,以及投票應(yīng)用的例子。圖一顯示了該架構(gòu)的一個UML框圖:
**************圖一*******************
(UML類框圖)
該架構(gòu)的中心部分由兩個共有的JSP包含文件和兩個類組成,下面將會談到。它們的作用是完成共有的處理。
includeheader.jsp:這個JSP文件必須被靜態(tài)包含在每個JSP文件的開頭。
includefooter.jsp:這個JSP文件必須被靜態(tài)包含在每個JSP文件的末尾。
AbstractJSPBean:這是一個抽象類,你應(yīng)該將它作為所有JSP JavaBean類的一個超類使用。它是該架構(gòu)的核心類。
SharedSessionBean:在一個HTTP session中,為所有的JSP JavaBean對象提供關(guān)聯(lián)。
JSP網(wǎng)頁只是用作表現(xiàn)的。每個JSP頁面都應(yīng)該使用一個相應(yīng)的JavaBean來處理特定頁面的邏輯。每個JSP頁面都應(yīng)該靜態(tài)包含includeheader.jsp和includefooter.jsp。每個JavaBean都必須擴(kuò)展AbstractJSPBean,該抽象類包含有模板方法,可完成共有的處理。
這個投票的應(yīng)用包含有以下的JSP和相應(yīng)的JavaBean:
login.jsp, LoginJSPBean:投票者認(rèn)證和登錄
vote.jsp, VoteJSPBean: 執(zhí)行投票
confirmation.jsp, ConfirmationJSPBean: 顯示確認(rèn)和投票的結(jié)果
我將不會詳細(xì)討論數(shù)據(jù)庫和商業(yè)邏輯的部分((Voter, Candidate和VoteDB),不過它們對于這個例子是必需的。
以上我們已經(jīng)對整體有了一個概觀,接著我們將討論例子中的每個JSP頁面。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -