最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > jsp教程

Servlets和JSP Pages最佳实践教程

日期:11-11    来源:中国设计秀    作者:cnwebshow.com

看看是否有你所想要的东西。
  • 不要重新发明轮子: 虽然自定义标记提供了重用宝贵的组件的方法,但是仍然要创建、测试和调试它们。另外,开发者仍然要不断地重新发明轮子,该解决方案的效率不是最高的。问题就是通过提供一组颗重用的标准标记解决JavaServer Pages Standard Tag Library (JSTL) 。JSTL定义了一组在任何地方都一样工作的标准标记库,这样你就不再需要使用scriptlet(或各类供应商提供的迭代标记)在集合中进行迭代。JSTL 包括各类标记,循环、不使用Java语法就读取属性、迭代各类数据结构、有条件地计算表达式、通过一种精确的方式设置属性和脚本变量并分析XML文档。
  • 使用JSTL表达式语言: 使用JSP范围属性和请求参数将信息传递给JSP页面。表达式语言 (EL)是为页面作者特别设计的语言,将JSP范围属性提升为业务逻辑到JSP页面通讯的标准方法。然而,注意,然而EL是JSP技术的一个关键方面,它不是一个通用编成语言。而且,它是简单的数据存取语言,它不需要使用scriptlet或请求时间表达式值就能方便地存取(并操作)应用数据。Cv6中国设计秀
    Cv6中国设计秀
    在JSP 1.x中,页面作者必须使用表达式<%= aName %> 来存取系统的值,如下面的例子所示:
           <someTags:aTag attribute="<%=Cv6中国设计秀
                    pageContext.getAttribute("aName") %>">

或自定义的JavaBeans组件的值:Cv6中国设计秀

   <%= aCustomer.getAddress().getCountry() %>

表达式语言允许页面作者使用简化的语法存取对象。例如,可以使用下面的语句存取简单变量:Cv6中国设计秀

   <someTags:aTag attribute="${aName}">

如果想要存取嵌套的JavaBeans属性,可以使用下面的语句:Cv6中国设计秀

   <someTags.aTag attribute="${Cv6中国设计秀
      aCustomer.address.country}">

如果你使用Javascript,你将会觉得非常熟悉,因为EL采用JavaScript语法存取结构化数据。Cv6中国设计秀

  • 如果可能使用过滤器: 过滤器是JSP技术的一项新功能。如果你曾经遇到过这样一种情况,那就是有多个servlet或JSP页面需要压缩它们的内容,那么在这种情况下你就能够编写一个简单的压缩过滤器并将它应用到所有的资源上。例如,在Java BluePrints中,通过过滤器来提供SignOn。
  • 使用可移植的安全模型: 绝大多数服务器提供服务器或供应商特定的安全功能,这样就将开发者局限于某台特定的服务器。为了最大化企业应用的可移植性,使用一个可移植的Web应用安全模型。然而,到最后,这归结成权衡问题。例如,如果你有一组早就定义好的用户,你可以使用基于表单的登录或基本认证来管理他们。但是如果你希望动态创建用户,你就需要使用容器特定的API来创建和管理用户。但是容器特定的API不具有可移植性,使用适配器(Adapter)设计模式能够克服这一点。
  • 使用数据库存储持久信息: 可以使用Httpsession 对象实现会话,该对象提供了一个简单方便的机制来存储用户、识别用户的cookie。使用会话存储临时信息—所以即便这些信息丢失了,你也不用担心。(当会话过期或客户端改变浏览器的时候,会话数据就会丢失。) 如果你希望存储持久信息,使用数据库,在浏览器之间共享数据库中的持久信息更加安全更具有可移植性。
  • 缓存内容: 永远都不要动态重新生成请求之间不会改变的内容。你可以在客户端、代理端或服务器端缓存内容。
  • 使用连接缓冲池: 推荐使用JSTL进行数据库存取。但是如果你希望自己定制编写数据库存取的行为,推荐你使用连接池,这样能有效地让所有请求共享数据库连接。然而,注意,J2EE服务器在背后提供了该项功能。
  • 缓存数据库请求结果: 如果你希望缓存数据库结果,不要使用JDBC的ResultSet 对象作为缓存对象。它和一个链接紧密结合,这个链接和连接池相冲突。将数据从ResultSet 复制到特定应用的bean,如Vector或JDBC的RowSets。
  • 在必要的时候采取新的JSP XML语法:实际上这基于你希望你的应用程序如何遵守XML。然而,这需要进行权衡,因为这使得JSP成为更加强大的工具,但是对开发者却不怎么友好。
  • 读取并应用Enterprise BluePrints:Sun的 Enterprise BluePrints 给开发者提供了指南、 模式、 和例子应用程序,如Adventure Builder和Pet Store。总的来说, J2EE BluePrints提供了最佳实践和一组设计模式,这些实践和模式是构建具有可移植性、强壮可扩展的Java应用程序中经常出现的问题的解决方案。

集成Servlets和JSP页面

JSP规范给出了使用JSP页面构建Web应用程序的两个方案:JSP模型1和模型2体系结构。这两个模型的区别在于处理的位置。在模型1的体系结构中,如图2所示,JSP页面负责处理请求并将响应发送给客户端。Cv6中国设计秀

Cv6中国设计秀
2: JSP模型1 体系结构Cv6中国设计秀

模型2体系结构,如图3所示,集成使用了servlets 和JSP页面。在该模型中,JSP页面用于表示层,并且servlets负责处理各类任务。Servlet作为一个控制器,负责处理请求并创建JSP页面所需的任何bean。该控制器也负责确定将该请求传递到哪个JSP页面。

本文引用地址:/bc/article_46750.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明