站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题Servlets 最佳实践(一)

Servlets 最佳实践(一)

摘要: Servlets 最佳实践(一)
内容: 原文:http://www.onjava.com/pub/a/onjava/excerpt/jebp_3/index1.html

作为从《Java Enterprise Best Practices》摘取的三部分的第一部分。主要是学习如何有效地用 Servlets 工作。

  从1996年Servlets的产生便决定了Java服务端的发展前景,并成为Java运用到WEB中的标准途径,是Java程序员做WEB应用程序服务的技术基础。本章探讨servlet发展和配置最佳实战。

  有效地用Servlets工作

  我们从Servlets Frameworks开始介绍,Servlets Frameworks如(Apache Struts)通过提供应用程序框架提高了开发人员的工作效率从而逐步的流行起来。在第一部分,我们学习Servlets Frameworks到底提供了那些东东;然后,我们由浅入深地介绍如何用预编译来优化Servlets性能,下一步,我们处理一些比较棘手的装载配置文件主题、并提供了一些代码使任务更加简单化。接着我将要提供一些关于何时需要使用HttpSession 和 SingleThreadModel特点的经验技巧。在本部分末尾,我将解释如何控制缓冲以便更清楚的获得用户的经历,和一些最经常出现的问题如:“怎样实现客户端下载文件的时候弹出’保存’对话框”,你将会明白这个问题的关键是HTTP头信息的正确设置。

  选择正确的Servlet Frameworks

   当我们写Web应用程序时候,首先应该记住Servlets是一项开源技术,早期,人们在做Java Web编程的时候总是忘记这个,没有引入Servlet API,于是我们不得不自己去实现。有点象以前的时代,非常的艰难,程序员必须自己写自己的Servlet代码,根本没有一点投机。我们今天非常幸运的不需要那样做了。就象输出只要”out.println()”即可。
  现在。时代已经改变,群体协作精神已经来临,我们有许多servlet基础技术使Web应用程序更加快速容易的实现。第一个变革便是表示层(presentation layer)的变化:在out.println()出现之前,JavaServer Pages (JSP), WebMacro,和Velocity等给我们提供了丰富的选择。这些技术更容易对开发,配置,修改动态的页面内容。在Java Servlet Programming(Second Edition)一书中你能看到这些和其他模板技术的研究。

  今天,我们主要讨论框架中的表示层的变革。(见图1)这些新的框架为快速建立web应用程序、页面添充web应用程序提供了一个平稳的操作平台。Framework具有最好的专家设计和良好的重用性,好的Framework能提高你的应用程序模块化和可维护性。Framework也能让将将不同的技术封装成一种包形式并以提供组件的方式解决通常的任务。如果你选取正确的Servlet Frameworks,能很快的提高你的效率并且很好协调团队工作。因此我在这里选用正确的Frameworks 的同时在这个章节里提供了一些关于选取正确的Frameworks 的经验技巧。

图1:Servlets,模板技术与框架
IMG upload/forum/20039804137.gif[/IMG]

  Tips for selecting a framework(选择框架技巧)

  选取framework,非常重要的一步就是考虑每个framework的特性。以下是一些framework提供的部分特性,并不是所有的framework都支持这些特性。

  1. 与模板语言集成
  有些framework是一些模板语言的综合,其他的虽然也对模板语言经常优化,但只算上一支持模板语言的插件模型。如果你需要具体的模板语言,首先要保证framework能够很好的支持它。

  2. 设计与开发的分离
  framework的目标之一就是让开发WEB应用程序时候使开发与设计分离。选择正确的模板语言是有必需的,但选择framework更是迫切而必要的,毕竟每种framework的关注不同,但都支持设计与开发的分离模式。

  3. 安全性能
  默认的servlet存取空话子与安全模型只能在普通的工作中适用,并不能满足安全高级需求,一些framework提供了一些可变换的安全模型,还有一些支持安全模型插件。如果你要需要高级安全控制,选择正确的framework是必须的。

  4. 表单校验
  framework通常提供一些校验表单数据的工具,能够允许framework在Servlet看到数据前对传递过来的参数/表单数据进行全方面的审核。比如说;一些允许使用表单上一步/下一步向导及其当前状态简洁方便的开发。

  5. 错误处理
  一些framework具有普通/高级错误处理机制、比如发送邮件警戒、数据存储日志错误或自动格式化的用户/管理者错误。

  6. 持久性/数据库性能
  持久性的终端数据存储可以说是framework最为强大的性能之一,比如数据库技术。Frameworks让用户不再用sql的思维而使用object(对象)的思维来考虑事物。

  7. 国际化
国际化是一直是一种挑战。但是有些framework有这种简单处理语言不同的性能。

  8. IDE
  一些framework为了framework的发展与支持第三方IDES(integrated development environments)提供了IDES。

  9. 支持web服务的机构
  随着web服务的增长趋势,经常见到一些以web服务为中心的新的framework与一些已经存在的framework大力宣传他们的web 服务。

  除了上面的特性,另外要考虑的是framework的许可证,我的建议是选择开源项目或者是有多种卖主的标准接口。这样将会保护你的利益。不管是开源还是普通标准的framework都能避免一种单一的framework问题并能保证没有人能在你终止你正在使用的framework.。
  第三要考虑的是 该framework的市场定位,不同的地方有不同的需要。Frameworks都是根据某一市场领域而产生的。你可能会发现去研究相似的应用程序用不同framework实现是很用的.



matrix开源技术经Onjava授权翻译并发布.
如果你对此文章有任何看法或建议,请到Matrix论坛发表您的意见.
注明: 如果对matrix的翻译文章系列感兴趣,请点击oreilly和javaworld文章翻译计划查看详细情况
您也可以点击-ealy查看翻译作者的详细信息.
Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd, scwcd 原文:h
↑返回目录
前一篇: 用Digester简化XML文档处理(一)
后一篇: Servlets 最佳实践(二)