Servlet 技术和JSP.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Servlet 技术和JSP

Servlet 技术和JSP(JavaServer Pages)是利用Java语言开发Web应用程序的两种主要技术。Sun公司于1996年首次推出Servlet技术时,人们认为这种技术远优于当时占主导地位的公共网关接口(Common Gateway Interface,CGI)。这是因为某个servlet(服务器端Java程序)在应用户的请求而首次调入内存执行之后将一直驻留在内存里,对同一个servlet的后续请求不用再对这个servlet的类进行实例化,因此响应速度更快。.   可是,servlet也存在一个严重问题,因为所有的HTML输出必须像下面这段代码那样封装在String对象里,所以servlet将HTML标签发送给浏览器时既繁琐又容易出错:   这大大增加了编程的难度,而且即便是对网页在表现方面的细微改动,例如改变网页的背景颜色,也需要重新编译整个servlet。   Sun公司意识到了这个问题,并提出了JSP技术。JSP允许Java代码和HTML标签混杂在一起以简化页面的编辑工作,所有的改动无需重新进行编译:某个页面修改后,将在第一次被调用时自动编译。JSP里的Java代码段称为scriptlet 。   允许Java代码和HTML混杂在一起的办法乍看起来很实用,但实际上并不好,原因有以下几点。   把Java代码和HTML混杂在一起会让应用程序变得难以阅读和维护。   把代码编写在JSP页面里的做法使代码很难重用。当然,你完全可以把所有的Java方法都放到一个JSP页面里,并把这个页面包含到需要用到这些方法的其他JSP页面里,但这种做法显然偏离了面向对象范型。别的先不说,至少继承机制的好处是无从谈起了。   在JSP页面里编写Java代码要比在Java类里编写Java代码困难得多。我们必须面对这样一个事实:各种各样的IDE都是为了分析Java类(而不是JSP)里的Java代码而设计的。   如果把代码封装在Java类里,调试起来会更容易。   封装在Java类里的业务逻辑更容易测试。   Java类里的Java代码更容易重构。   事实上,把业务逻辑(Java代码)和页面表现(HTML标签)分开是非常重要的,JSP的设计者从JSP的第一个版本开始就一直在鼓励程序员采用这种做法。   在JSP 1.0中,程序员就可以使用JavaBeans 技术来封装Java代码,从而支持把有关代码和页面表现分离开来。程序员可以通过[jsp:useBean]和[jsp:setProperty]来创建JavaBean并分别设置属性。   令人遗憾的是,JavaBeans技术并没有为代码和页面表现的分离问题提供一个完美的解决方案。首先,因为对方法的命名必须遵守JavaBeans的命名约定,所以偶尔会出现某个方法的名字非常冗长难记的情况。其次,在使用JavaBean时,如果不求助于scriptlet,我们就无法把有关的参数传递给相应的方法。   为了使代码和HTML标签分离更容易实现,JSP 1.1定义了几个自定义标签库,它们比JavaBeans更加灵活易用。但这又引出了一个新问题:自定义标签很难编写,而JSP 1.1中的自定义标签又都有非常复杂的生命周期。   后来,人们开始给有关的标签添加一些特定的常用功能。这些标签编译为几个库文件,统称为JSTL(JavaServer Pages Standard Tag Libraries,JSP标准标签库)。例如,JSTL的标签可以处理各种作用域对象,遍历集合,进行条件测试以及解析和格式化数据等。   尽管有了JavaBeans、自定义标签和JSTL等多种选择,还是有不少人因为以下几个理由仍在JSP页面里使用scriptlet。   贪图方便。把所有的东西都集中放在JSP页面里非常方便。如果应用程序只包含一两个页面并且不可能再变得更加复杂,这种做法还算凑合。   目光短浅。乍看起来,把代码和HTML集中编写在JSP页面里似乎是一种能够缩短软件开发周期的好办法。但从长远看,采用这一思路开发软件是要付出代价的。代码的维护和可读性都成问题。   无知。 .  此外,如果参与项目开发工作的程序员水平参差不齐,将难以保证把全部的Java代码都井井有条地收录到有关的Java类里。JSP 2.0增加了一项能够让软件架构师在JSP页面里统一禁用scriptlet的功能,而这意味着架构师可以强制要求程序员把代码和HTML分开,从而更容易达到不在JSP页面里掺杂scriptlet的目的。另外,为了简化自定义标签本身的编写工作,JSP 2.0还提供了一个更简单的自定义标签生命周期,可在标签文件里设立标签。   为什么说Servlet还有生命力   随着JSP的到来,有许多人认为Servlet已行将就木,可实际情况并

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档