【vc++精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了vc++精品源码-【精品】最佳实践 - 其它资料的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
44第三章Servlet 最佳实践Jason Hunter自1996 年引入以来,Servlet 已经占据了服务器端Java 领地,并且成为Java 介入Web的一种标准方法。
作为一种基本技术,Java 开发人员以此为基础来构建Web应用以及(更进一步的)Web服务。
这一章将讨论基于Servlet 的开发和部署的最佳实践。
有效使用Servlet首先来介绍Servlet 框架。
框架(如,Apache Strut)越来越普及,这是因为通过提供一种“骨架”(skeleton,应用可在此基础上构建),框架能够提高程序员的效率。
在第一节中,我们将分析Servlet框架提供了什么并对最流行的框架作一个简要概述;然后,将讨论使用预编码字符可以如何优化Servlet 的性能。
接下来,我们将处理加载配置文件这一棘手的问题,并提供一些代码从而使这个任务更容易完成; 其后,我将提供一些有关何时应当使用( 以及何时不应当使用)HttpSession和SingleThreadModel特性的技巧。
本章结尾部分,我将解释如何可靠地控制缓存,以提高用户的体验。
然后将解决一个常见问题:“如何将文件下载到客户,从而让客户看到一个‘保存为’(Save As)弹出对话框”,你将看到,答案就在于设置合适的HTTP 首部。
Servlet 最佳实践45选择合适的Servlet 框架编写Web 应用时,应当记住Servlet 是一种功能强大的技术。
这一点很容易被遗忘,因为最初Servlet API 即为服务器端Java Web 编程的全部。
至于Servlet API不包括的某些内容,就必须由我们自行构建。
这有点类似于西部片中的情景,当时情况相当恶劣,真正的程序员需要自己动手来编写Servlet,而且有关规范尚未编写。
仅仅有out.println就令我们颇感欣慰了。
时光荏苒,斗转星移。
正如西部原野上出现了大批牛羊,在这一领域中也涌现了许多新的内容,我们看到,大量基于Servlet 的技术被设计出来,从而使Web 应用开发更加容易而且更为有效。
发生变革的第一个领域为表示层。
较之于以前应用很广的out.println,诸如JavaServer Pages(JSP)、WebMacro和Velocity等技术则提供了输出更为丰富的方法。
与以往相比,利用这些技术使得快速地开发、部署和维护动态Web内容更加容易。
有关这些技术以及其他模板技术的全面讨论,请参见我所著的《Java Servlet Programming》第二版(OReilly 出版)。
今天,我们发现在表示层之下出现了一个产生变革的新领域,即框架层(如图3-1 所示)。
这些新的框架提供了一个可靠的支架,基于这个支架可以构建新的Web应用,从而由快速构建页面转移到快速构建完整的应用。
框架采纳了专家们最优秀的设计,使你能够重用这些设计。
好的框架有助于改善应用的模块性和可维护性。
框架还将多种单独的技术集合在一个捆绑的包中,并提供了基于这些技术构建的组件以解决常见的任务。
如果你选择了合适的Servlet框架,不但可以大大地提高你的工作量,并且可以利用他人的工作。
因此,我建议你考虑使用一个框架,而且我在这一节中还将提供一些关于选择合适的框架的有用技巧。
选择框架的技巧选择一个Servlet框架时,考虑其特性表相当重要。
下面列出了框架提供的一些特性。
并非所有框架都支持以下特性,另外这一简短的列表也并非详尽的(注1)。
注1: 这实际上是一个正在进行的研究项目,其目标是跟踪Servlet框架特性,并且在各个框架上实现同样的演示Web 应用。
更多的信息请参见http//www.waferproject.org。
46 第三章Servlet 框架JSP WebMacro VelocityMVC 类Servlets等等安全性表单验证数据库错误处理集成图3-1:Servlet、模板技术和框架与模板语言的集成有些框架集成了一个特定模板语言,另外一些框架则有一个“可插拔”的模型以支持多个模板,不过它们通常都针对一种模板语言加以优化。
如果你偏好某种特定的模板语言,请确保所选框架能够很好地提供相应的支持。
支持(理想情况下则可增强)设计人员/ 开发人员的分离Web应用开发的一个通常目标是将开发人员的责任从