当前位置: 首页 > 图文教程 > 网络编程 > JSP > Servlets和JSP Pages最佳实践

JSP
搭建Eclipse+MyEclipse开发环境
卖jsp编程技巧的那个垃圾的所有实例的答案全部已收集,现将他人收集的实例答案公布出来,大家鉴赏!
一个jsp+AJAX评论系统
JSP 多个文件打包下载代码
JSP 动态树的实现
jsp 重复提交问题
J2ME/J2EE实现用户登录交互 实现代码
访问JSP文件或者Servlet文件时提示下载的解决方法
JSP EL表达式详细介绍
JSP 报表打印的一种简单解决方案
jsp 自定义标签实例
AJAX自学练习 无刷新从数据库后台取数据显示
AJAX 自学练习 请求与显示
AJAX 自学练习 无刷新提交并修改数据库数据并显示
jsp 文件上传浏览,支持ie6,ie7,ie8
JSP application(return String)用法详例
jsp form表单方法示例
JSP request(return String)用法详例
JSP forward用法分析实例代码分析
JSP JavaBean的setProperty属性

Servlets和JSP Pages最佳实践


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 50 ::
收藏到网摘: n/a

 

Java Servlet技术与JSP技术使Java服务器端技术,目前他们控制了整个服务器端Java技术市场,并且逐渐成为构建商业Web应用的标准。Java开发者喜欢这些技术是由于很多的原因,包括:这些技术很容易学习,一次编写,处处运行(Write Once, Run Anywhere)。更重要的是,如果更高效地采用了下面的实践,Servlet与JSP能够帮助分开Web的表示与内容。“最佳实践”是被证明为开发高质量、可重用与易维护的基于Servlet和JSP的Web应用的较好方法。与此相对应的是,将Java代码混合在HTML中,这样很容易产生低效率、不易重用、难于维护的复杂应用程序。最佳实践将改变这些弊端。

本文将描述为Servlets与JSP准备的最佳实践的重要性;这里假设读者已经了解两者的基本工作原理。这篇文章将涵盖以下内容:

  • 简要介绍Java Servlet与JavaServer Pages (JSP)。
  • 为开发Servlets 与JSP提供一些提示,技巧与规则。
  • 为Servlet与JSP提供最佳实践。

Servlet和JSP Pages概述

类似于通用网关接口(CGI)脚本,servlets支持请求响应编程模式。当客户端给服务器发送请求时,服务器将请求发送给servlet。然后,servlet构建一个响应,服务器将该响应发送回客户端。然而,跟CGI脚本不同的是,servlets和HTTP服务器运行在同一个进程内。

当发出客户端请求的时候,调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。doGet和doPost都接受请求(HttpServletRequest)和响应(HttpServletResponse)。

最简单地说,servlets是能够使用print语句产生动态HTML内容的Java类。然而,有一点必须要提一下,那就是servlets是在一个容器内运行的,并且APIs 提供了对会话和对象的生命周期的管理。因此,当你使用servlets时,你就能获得Java平台的所有优势,它包括沙箱 (安全)、通过JDBC的数据库存取API和具有跨平台可移植性的servlets。

Java Server Pages (JSP)

JSP技术是Servlet技术的一个较高层次的抽象。它是Sun公司开发、开放的技术,是与Microsoft公司的ASP动态网页技术相似的一种技术,并且它是Java2 企业版(J2EE)的一个关键组件。目前,很多商业的应用服务器(例如BEA WebLogic, IBM WebSphere, Live JRun, Orion等等)都支持JSP。
 

JSP页面如何工作?

JSP页面实际上是一个带有传统HTML和Java代码的Web页面。JSP页面的文件扩展名是.jsp而并不是.html或.htm,该扩展名告诉服务器该页面需要特殊的处理,该特殊处理必须由服务器扩展或插件实现。

当一个JSP页面被读取时,他首先将被编译(JSP引擎来做这件事情)为一个Servlet。 这时候这个Servlet就像其他Servlet一样被交给Servlet引擎来处理。然后Servlet引擎读取那个Servlet对应的类(用ClassLoader)并且执行它,产生一个动态HTML页面(图1)。这个Servlet创建一些必需的元件,然后将这些元件作为一个字符串写入输出流(OutputStream),并显示在浏览器中。
调用JSP页面时,首先会将它编译成一个 (通过JSP引擎) Java servlet。这时,servlet引擎处理该servlet,就像处理任何其他servlet一样。然后,servlet引擎加载servlet类 (使用类加载器) 并执行它创建动态HTML发送给浏览器,如图1所示。Servlet创建所有必需的对象,并将所有对象作为字符串写入到输出流中,并在浏览器中显示。


1: 调用一个JSP页面的请求/响应流程图

下次请求该页面的时候,JSP引擎执行早就装载的servlet除非JSP页面早就更改,在这种情况下,会将它自动重新编译进一个servlet中并执行。

最佳实践

在本节中,将描述在Servelt, 特别是JSP中的最佳实践。强调JSP最佳实践是因为JSP比Servlet得到更为广泛的应用(也许是因为JSP技术促进了表示与逻辑的分离)。一个集成Servlet与JSP的最佳实践是“模型-显示-控制器”设计模式(Model View Controller, MVC),将在本文的后面部分进行讨论。

  • HTML页面中不要过多使用Java代码: 将所有的Java代码直接放在JSP页面中,对于小项目而言没有问题,但是过度使用将会导致意大利面条似的代码,难于阅读,难于理解。减少Java代码的方法是编写独立的Java类来实现计算等逻辑。一旦测试了这些类,就创建了实例。
  • 选择合适的include机制: 最好将页眉、页脚和导航条内容存储在单个文件中,并且不要重新动态产生它们。一旦将这些内容存