欢迎来到天天文库
浏览记录
ID:36194523
大小:95.00 KB
页数:7页
时间:2019-05-07
《servlets and jsp pages best practices-译文》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Servlets和JSP页面的最佳实现作者:QusayH.Mahmoud时间:2003年3月JavaServlet技术和JavaServerPages(JSP页面)作为服务端技术,已经占据了Java技术在服务端的市场,他们已经成为开发商业Web应用程序的标准方式。Java开发人员热爱这些技术是有原因的,包括:易于上手,而且带来的是,一次编写,随处运行(这里指可运行在任何安装有JVM平台的机器上)。更重要的是,如果使用下列最佳的做法,Servlets和JSP页面可以有效的将内容和表现相分离,开发高质量,可重复使用的且易于维护的Sev
2、lets和JSP的Web应用程序将是最佳的做法。例如:嵌入Java代码的HTML文件会导致工作效率不够高,难以复用扩展和维护。“最佳实现”(指此文章)可以改变这一切。在这篇文章中,我将重要的介绍Servlets和JSP页面的最佳做法。并假设你有这两种技术的基本知识基础。这篇文章包括:概述JavaServlets和JavaServerPages指示和引导使用Servlets和JSPpages一个好的Servlets和JSP页面的例子概述Servlets和JSP页面类似于CGI(CommonGatewayInterface)脚本,se
3、rvlets提供了请求和响应的程序设计模型。当客户端向服务器发送请求时,服务器把请求发送到servlets。然后由servlets构建一个响应,由服务器发回到客户端。虽然不同于CGI脚本,但是servlet就像HTTP服务器一样运行在同一进程中。当客户端请求时,service方法被调用同时传递一个请求和响应对象。servlet首先确定该请求是一个GET或者POST操作,然后对应调用doGet或者doPost方法方法之一。如果请求的是GET,doGet方法会被调用;如果请求的是POST,doPost方法会被调用。doGet和doPo
4、st都采取请求(HttpServletRequest的)和响应(HttpServletResponse)的。在最简单的情况下,servlet可以是生成包含输出语句的动态HTML文本的类。对servlets来说最重要的是它是在一个容器中运行的,同时它的APIs提供了会话(session)和对象生命周期的管理。因此,当你使用servlets时,你可以从Java平台得到很多的好处,其中包括沙箱(安全机制),通过JDBC访问数据库的API,和servlets的跨平台可移植性。JavaServerPages(JSP页面)就像微软的Activ
5、eServerPages(ASP)技术,JSP技术是一个开源的、免费的由SunMicrosystems提供的规范,它把servlets抽象到了一个更高的水平,并且成为了J2EE平台的一个关键组件。许多商的应用服务器(比如BEA的WebLogic,IBM的WebSphere,Live的JRun,Orion,等)都是支持JSP技术的。JSP页面如何工作的?一个JSP页面基本上就是一个包含传统HTML代码和Java代码的网页。JSP文件的扩展名是.jsp而不是.html或者.htm,用来告诉服务器,这个页面需要由服务器的扩展功能或插件来
6、完成特殊的处理。当一个JSP页面被调用时,它会被JSP引擎编译到一个JavaServlet中。servlet在这一点上就像其它的servlet,是由servlet引擎处理的。Servlet引擎使用类加载器加载servlet类,并执行它来创建动态的HTML发送到浏览器上。此Servlet创建所有必要的对象,把输出流实例化到必要的对象上发送给浏览器。如下图1所示:图1:请求/响应流调用一个JSP页面中当下一次请求页面时,JSP引擎会执行已经加载的servlet的JSP页面,除非JSP页面发生了变化,在这种情况下,它会重新编译生成ser
7、vlet并执行。最佳实践在这一节,我将呈现servlets和JSP页面一个很好的例子,特别是JSP。把JSP页面作为重点仅仅是因为JSP页面似乎更加广泛应用(可能是因为JSP技术提高了从内容到表现的分离)。一个最好的结合并使用了servlets和JSP的例子是ModelViewController(MVC)设计模式,在本文后面将会讨论。不要在HTML页面中滥用Java代码对非常小的应用程序来说把所有的Java代码直接放在JSP页面中是可以的。但过度使用这一特性将导致你的代码像意大利面条一样难于阅读和理解。一种在HTML页面中减少J
8、ava代码的方法是将运算处理同Java类相分离。实例会在这些类被测试时生成。选择恰当的包含机制静态数据,如页眉、页脚和导航栏的内容最好是保存在单独的文件中,而不是再动态生成。一旦这些内容分布在不同的文件中,使用下面的语句可以将它们包含在所有的文件当
此文档下载收益归作者所有