分享
 
 
 

MoreJSP编程实践(中)

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

利用servlet filter的特点

servlet filter是Servlet2。3规范中引入的,但是这些filter同样有利于jsp开发和维护。因为JSPs需要被转换成servlets,JSPs与servlet技术紧密相关。因此servlet规范的重要发展会影响到JSP的发展,对此你不应该感到奇怪。

Servlet filters是Intercepting Filter模式的J2ee实现,因此提供了这个模式的所提供的特点,包括更好的维护性,少的代码冗余以及更好的可移植性。这是因为:通常你需要加入服务到每个jsp页面中,而现在可以通过将这些服务放到一个filter中。并且这些JSPs根本不需要这些filter的存在。因为在可插入的filters与JSPs之间没有关联性,因此在filter中的修改将不会直接影响到JSPs。你可以使用filter链,使用不同的filter的组合,每个filter用来实现不同的目的。

JSP网络应用中servlet filter的作用

下面的两个例子说明了在基于JSP的网络应用中servlet filter的作用。在许多的安全配置中,每一个JSP页面都会检验会话ID和其他一些安全性来授权一个JSP调用。你可以将这些在每个JSP页面中的检验代码移植到一个servlet filter中,并且确保这个filter在调用每个jsp页面之前被调用。这样就提高了JSPs的可维护性和可移植性。你可以仅仅的在这一个servlet中进行一些安全检验方面的修改,或者是在其中加入一些和安全相关的代码。而不是在每一个JSP页面中进行修改。如果将来整个安全机制改变了,系统中唯一要修改的地方仅仅是这个filter,独立的JSP页面将不需要任何修改。

在上一篇“JSP Best Practices”中,我推荐将异常信息存储到“Secondary Storage”中,并且仅仅的提供给用户一个可以检索这些异常信息的一个标志(and only providing the user with an identifier to search the storage for the entire exception trace)。在这种情况下servlet filter非常的有用。你可以通过配置来使网络应用(Web Application)在调用异常JSP时自动的来执行用来记录异常日志的filter。Sevlet规范提出了许多的潜在的servlet filter用法。

为JSPs的创建API文档(document.nbspthe APIs for your JSPs)

Java的许多悦人心意的特点之一便是它支持JavaDoc。通过JavaDoc可以快速而容易的为java代码提供Web-based的文档。不幸的是,javadoc工具不支持JSP,并且JSP规范没有“唤起”一个方法来提供“JSP APIs”。

什么是JSP API?

能够不通过阅读JSP的全部的代码就能够快速的确定一些JSP方面是非常之有用的。比方说,你需要知道哪些变量是绑定到会话(session),请求(request)和应用(application)的范围,并且这些变量是具体的被绑定到了具体的哪一个范围之上。另外一个JSP API用处的例子是在JSP segment之中,segment需要知道在被包含的时候,调用它们的JSP中已经声明和制定了哪些变量(Another example of useful JSP API information is denoting in JSP segments which variables they require the calling JSP to have declared and defined when including them)。

JSP规范没有涉及关于如何的建立JSP API的文档。Sun的JSP 1.x 代码公约文档讨论将注释和作者,版权,以及描述的信息一起写在JSPs的上部,但是我喜欢更详细的记录JSPs的期望的输入(but I like to document.nbspmy JSPs' eXPected inputs more thoroughly)。

因为JSP规范中没有涉及到这些,因此没有一个标准的用来注释JSP API。一个方法是在JSP中使用java代码(scriptlets)并且在代码中嵌入javadoc形式的注释(/** javadoc comment */)。尽管我很少在JSPs中使用java代码,但是这是在服务器端保留这些注释的最简单的方法。使用XML/Html风格的注释会将JSP API暴露在客户端,这是一个很不好的方法。

我知道有两种免费可以使用的产品可以用来为你的JSPs做注释,SourceForge.net的JspDoc以及OSDN(Open Source Development Network)的Freshmeat.net的JSPDoc。(关于两种工具的详细情况见resource【http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp-p3.html#resources】).这里我将简要的介绍一下这两个工具。

JspDoc(SourceForge)

SourceForge的JspDoc可以用来为JSPs生成Javadoc风格的文档。

这个工具通过将XML-Compliant的标签放入到Javadoc风格的注释(/** */)之中,而这些注释是放在了JSP page的java代码中。这个工具的缺点是目前它仅仅支持JSP pages,尽管对JSP document.支持已经在计划列表中。

这个工具还提供了转换JSP pages到JSP document.功能。因为我从一开始就编写JSP document.因为我没有用过这项功能,但是对于想从JSP pages转换到JSP document.用户来说,这是一个很好的工具。还要另外一个功能就是将JSP document.换到JSP pages。

JSPDoc(Freshmeat.net)

Freshmeat的JSP 文档生成器 JSPDoc从JSPs中抽取信息来创建Javadoc风格的基于Web的文档页面。这个工具的一个优点是它能够将产生的JSP文档与用Javadoc工具产生的java类的文档结合起来。缺点是,为了产生注释要求有一个相当严格的注释结构。这个特殊的语法使用了Javadoc的(/** */)但是并不能够识别@符号,而@在标准javadoc是有一定的含义的。另一个缺点就是这个工具不支持XML-compliant的JSP document.而是要求用<%%>的语法结构。This prodUCt is available under the Mozilla public license.

JSP document.tion for JSP document. 因为JspDoc和JSPDoc都不支持JSP document.我利用JSP document.XML-compliance的特性来产生Javadoc形式的文档。使用XSLT stylesheet,可是很容易的来为JSP document.建HTML页面形式的注释文档。而且不需要自定义的解析。因为当你的JSP是一个正确的XML文档时有标准的工具(比方Xalan)能够进行这些处理。具体参考(”JSP document.tion with XSLT” http://www.javaworld.com/javaworld/jw-07-2003/jw-0725-morejsp-p3.html#resources)。

相关文章:

翻译:More JSP编程实践(上)

matrix开源技术经onjava授权翻译并发布.

如果你对此文章有任何看法或建议,请到Matrix论坛发表您的意见.

注明: 如果对matrix的翻译文章系列感兴趣,请点击oreilly和javaworld文章翻译计划查看详细情况

您也可以点击-chessboy查看翻译作者的详细信息 (出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有