- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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已行将就木,可实际情况并
您可能关注的文档
最近下载
- 2021年新疆专升本语文真题试卷及答案.pdf VIP
- 2011级微电子工艺学试卷(A卷)习题与讲解.pdf VIP
- 带状疱症试题及答案.docx VIP
- 2025年演出经纪人独立经纪人与国际经纪公司的合作与竞争专题试卷及解析.pdf VIP
- GB30871-2022 危险化学品企业特殊作业安全规范知识考试题库资料.pptx VIP
- 《GB30871-2022 危险化学品企业特殊作业安全规范》知识考试题库(500题).docx VIP
- 最新账号申请表课件.pdf VIP
- 《机械密封培训》课件.pptx VIP
- 美团组织架构.pptx VIP
- 2025年信息系统安全专家哈希算法的演变与趋势专题试卷及解析.pdf VIP
原创力文档


文档评论(0)