纯servlet:重新考虑视图------外文文献译文和原文.docVIP

纯servlet:重新考虑视图------外文文献译文和原文.doc

  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:重新考虑视图 对于具有动态内容的Web页面,可以使用Java?Server Pages(JSP)技术将开发人员和UI设计人员的工作分离开来。遗憾的是,JSP对于许多设计人员来说太复杂了,所以Java开发人员只好自己处理JSP代码,这往往会产生令人不满意的结果。本文演示一种非正统的替代方法:通过使用简单的helper对象,根据纯servlet构建Web界面。 设计JSP的目的是将Web开发人员的任务与设计动态页面UI的非开发人员的任务分离开来。遗憾的是,JSP对于许多设计人员来说太复杂了,为解决各种动态内容问题添加的软件层让他们觉得非常棘手。(例如,国际化要求将文本存储在其他地方并通过键来引用。)所以对于大多数项目,Java开发人员只好自己处理JSP代码,这常常会包含本属于设计人员的工作,使他们的精力消耗在标记库和其他东西上,无法集中于Java代码。 与正统的方式不同,可以使用简单的helper对象,根据常规servlet构建简洁优美的 Web 界面。本文讲解如何以标准的Java形式编写动态Web页面的视图输出。我将解释这种方法的好处,并用一个计分应用程序演示这种方法,这个程序管理一个NCAA三月狂热奖金池。 HTML 是动态的 这种纯servlet 方法非常简单。它涉及一个 servlet 基类和一个定制的写出器对象,servlet 子类使用这个对象产生输出。代码很简洁,因为大多数 HTML 封装在helper对象的方法中,都可以按需重写。代码重用总是令人愉快,而且大多数 Web 站点的页面共享许多HTML,所以重用应该是个重要的考虑因素。HTML 输出方法产生直观紧凑的servlet 代码,因此可维护性很高,这使代码的维护成本差不多直接与代码规模成正比。通过将JSP界面重写成纯servlet,可以将代码缩减三分之二。 例如,要根据用户权限输出一个链接,就需要下面这样冗长的构造代码: c:if test=${user.permission[ sessionScope.ConstantMap[ EDIT_WIDGET ] ] != 0} c:url var=editUrl value=/EditWidget.jsp/ div class=navigationa href=c:out value=${editUrl}/Edit this widget/a/div /c:if 通过使用Java语法,代码就简洁多了: if (user.getPermission(Constants.EDIT_WIDGET) != 0) out.printNavlinkDIV(/EditWidget.jsp, Edit this widget); 另外,在同一个地方获取和输出业务对象,而不是通过请求对象传递它们,这也会节省大量代码。简洁是美。 使用JSP和其他视图技术可能是Web开发中最让人头疼的部分。JSP页面不是HTML或XML、Java代码、JavaServer Pages Standard Tag Library(JSTL)代码或表达式语言(EL),而是这些东西的大杂烩。JSP代码不但是奇怪的组合体,而且每个抽象层都给开发带来新的障碍。例如,对JSP页面进行调试简直就像探矿那样困难。您知道某个地方出了毛病,但是无法找到出问题的位置;神秘难懂的错误消息虽然指出了行号,但这个行号往往不是问题的真正所在。 JSP技术不能扩展基类,所以代码重用只能通过bean、include文件和定制的标记库来进行。标记库太麻烦,不适合进行有效的重用。为您所做的每处API修改维护一个XML是非常麻烦的,而且“标记设计就是语言设计”。结果是在本已分了很多层的接口上又加了一层。 我们正面对着全新的World Wide Web。无论Ajax能否引领Web开发的方向,Web站点都会继续向着更加智能化的方向发展。另外,尽管HTML本身总是声明性的,但是产生它的代码却不一定如此。JSP技术和其他模板化系统必然过分复杂,因为它们试图以声明式的方式表达本质上动态的输出。这正是开发人员无法容忍在JSP源代码中添加scriptlet的原因:我们试图表达的逻辑 具有各种各样的形式。 通过将HTML封装成Java代码,可以简洁地表达输出逻辑。if语句和for循环可以采用大家熟悉的形式。页面元素可以重构成方法,这样就很容易理解和维护它们。(对较大的JSP页面进行维护是非常麻烦的,非常容易出现错误,尤其是在缺少良好的注释的情况下。)通过使用纯servlet,可以尽可能增加代码重用,因为不需要为每个页面的构造编写新的类。 狂热的设计 为了演示纯servlet的概念,我为一个NCAA March Madness锦标赛奖金池构建了一个计分界面。用户可以从

文档评论(0)

嫣雨流纱 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档