最后的要点:框架
通过将表现和逻辑分离开来,该架构可让你独立地修改表现(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的应用设计提供了一个全面的解决办法。它改进了代码重用,确定了应用的体系,并且便于扩展。一个最大的好处是将表现和逻辑分开,你可以独立改变它们,而不会影响另一方。
|