使用JavaBean高效處理JSP(4)
發(fā)表時(shí)間:2023-07-30 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]最后的要點(diǎn):框架 通過(guò)將表現(xiàn)和邏輯分離開(kāi)來(lái),該架構(gòu)可讓你獨(dú)立地修改表現(xiàn)(JSP)和邏輯(bean)。這意味著你可以修改bean中的邏輯而無(wú)需改動(dòng)JSP,只要你保持bean的屬性不變就行了。相反也是...
最后的要點(diǎn):框架
通過(guò)將表現(xiàn)和邏輯分離開(kāi)來(lái),該架構(gòu)可讓你獨(dú)立地修改表現(xiàn)(JSP)和邏輯(bean)。這意味著你可以修改bean中的邏輯而無(wú)需改動(dòng)JSP,只要你保持bean的屬性不變就行了。相反也是成立的,你可以將JSP代碼交給HTML開(kāi)發(fā)者和美工來(lái)改變站點(diǎn)的外觀,而不會(huì)影響其中的Java代碼。
你可以稍微修改該框架的核心元素來(lái)滿(mǎn)足你應(yīng)用的特別需要。你可以加入新的或者修改現(xiàn)有的方法,或者修改模板的方法。重要的一點(diǎn)是,在你的整個(gè)應(yīng)用中,全部的JSP和JSP JavaBean都應(yīng)該使用這個(gè)架構(gòu)。
在剛開(kāi)始時(shí),這個(gè)架構(gòu)看來(lái)比較復(fù)雜,特別是對(duì)于一個(gè)只有三頁(yè)的例子應(yīng)用來(lái)說(shuō)。不過(guò),如果你開(kāi)始寫(xiě)你的應(yīng)用,你將會(huì)發(fā)現(xiàn)當(dāng)應(yīng)用變復(fù)雜時(shí),代碼量的增長(zhǎng)卻沒(méi)有預(yù)期的大。
這個(gè)架構(gòu)并沒(méi)有談到Web應(yīng)用中通常用到的多層設(shè)計(jì)。它主要集中在JSP的表現(xiàn)層。要建立真正的三層或者多層的系統(tǒng),JSP JavaBeamn將需要調(diào)用Enterprise JavaBean或者一些其它的商業(yè)邏輯實(shí)現(xiàn)。
例子還介紹了讓?xiě)?yīng)用跟蹤HTTP session的架構(gòu)。不過(guò),如果你不想依賴(lài)session的話(huà),該架構(gòu)仍然可以工作得很好。應(yīng)用的頁(yè)面和流程應(yīng)該是分別設(shè)計(jì)的。你可能將不需要SharedSessionBean。你的頁(yè)面只是用作表現(xiàn),而獨(dú)立的頁(yè)面將僅用作處理和驗(yàn)證,而不會(huì)有任何的HTML輸出。為此,你將主要使用beanFirstPassProcess() 方法。
最后的要點(diǎn):例子
我使用Tomcat3.1來(lái)測(cè)試這個(gè)例子,Tomcat3.1符合JSP1.1和Servlet2.2規(guī)范。這篇文章將不會(huì)討論如何在Tomcat中配置JSP應(yīng)用的詳細(xì)情況。
在測(cè)試該例子時(shí),你可以在VoteDB類(lèi)的源代碼中得到Voter ID,以便可以進(jìn)行登錄測(cè)試(密碼和ID是一樣的)。
你必須在瀏覽器中允許cookies,否則不能成功運(yùn)行例子。如果你需要在禁止cookies時(shí)仍然可以運(yùn)行這個(gè)應(yīng)用,你必須重新寫(xiě)URL(使用the javax.servlet.http.HttpServletResponse類(lèi)的encodeURL()方法)。你需要重寫(xiě)全部應(yīng)用中的URL,包括你的JSP中的鏈接,form標(biāo)記中的action,以及在JSP JavaBean中用來(lái)重定向URL的HTTP請(qǐng)求。
結(jié)論
這篇文章介紹的架構(gòu)為JSP的應(yīng)用設(shè)計(jì)提供了一個(gè)全面的解決辦法。它改進(jìn)了代碼重用,確定了應(yīng)用的體系,并且便于擴(kuò)展。一個(gè)最大的好處是將表現(xiàn)和邏輯分開(kāi),你可以獨(dú)立改變它們,而不會(huì)影響另一方。