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