快速业务通道

J2EE探索者: 使用Java Servlets 2.4来执行过滤 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
,因为千万不能背离这些元素的顺序。

J2EE探索者: 使用Java Servlets 2.4来执行过滤(4)

时间:2011-04-11 IBM Kyle Gabhart

3. 部署 Servlet 过滤器

事实上,与 Web 应用程序一起部署过滤器绝对不涉及任何复杂性。只需把过滤器类和 其他 Web 组件类包括在一起,并像您通常所做的那样把 web.xml 文件(连同过滤器定义 和过滤器映射声明)放进 Web 应用程序结构中,servlet 容器将处理之后的其他所有事情 。

过滤器的许多应用

您在 J2EE Web 应用程序中利用过滤器的能力,仅受到您自己的创造性和应用程序设计 本领的限制。在适合使用装饰过滤器模式或者拦截器模式的任何地方,您都可以使用过滤 器。过滤器的一些最普遍的应用如下:

加载:对于到达系统的所有请求,过滤器收集诸如浏览器类型、一天中的时间、转发 URL 等相关信息,并对它们进行日志记录。

性能:过滤器在内容通过线路传来并在到达 servlet 和 JSP 页面之前解压缩该内容, 然后再取得响应内容,并在将响应内容发送到客户机机器之前将它转换为压缩格式。

安全:过滤器处理身份验证令牌的管理,并适当地限制安全资源的访问,提示用户进行 身份验证和/或将他们指引到第三方进行身份验证。过滤器甚至能够管理访问控制列表 (Access Control List,ACL),以便除了身份验证之外还提供授权机制。将安全逻辑放 在过滤器中,而不是放在 servlet 或者 JSP 页面中,这样提供了巨大的灵活性。在开发 期间,过滤器可以关闭(在 web.xml 文件中注释掉)。在生产应用中,过滤器又可以再次 启用。此外还可以添加多个过滤器,以便根据需要提高安全、加密和不可拒绝的服务的等 级。

会话处理:将 servlet 和 JSP 页面与会话处理代码混杂在一起可能会带来相当大的麻 烦。使用过滤器来管理会话可以让 Web 页面集中精力考虑内容显示和委托处理,而不必担 心会话管理的细节。

XSLT 转换:不管是使用移动客户端还是使用基于 XML 的 Web 服务,无需把逻辑嵌入 应用程序就在 XML 语法之间执行转换的能力都绝对是无价的。

使过滤器适应 MVC 体系结构

模型-视图-控制器(Model-View-Controller,MVC)体系结构是一个有效的设计,它现 在已作为最重要的设计方法学,整合到了诸如 Jakarta Struts 和 Turbine 等大多数流行 的 Web 应用框架中。过滤器旨在扩充 MVC 体系结构的请求/响应处理流。不管请求/响应 发生在客户机和服务器之间,还是发生在服务器上的其他组件之间,过滤器在处理流中的 应用都是相同的。从 MVC 的观点看,调度器组件(它或者包括在控制器组件中,或者配合 控制器组件工作)把请求转发给适当的应用程序组件以进行处理。这使得控制器层成为包 括 Servlet 过滤器的最佳位置。通过把过滤器放在控制器组件本身的前面,过滤器可以应 用于所有请求,或者通过将它放在控制器/调度器与模型和控制器之间,它可以应用于单独 的 Web 组件。

MVC 体系结构广为传播,并具有良好的文档。请通过 参考资料中的链接了解关于 MVC 和 MVC 体系结构中的 Servlet 实现的更多信息。

结束语

虽然过滤器才出现几年时间,但它们本身已作为一个关键组件嵌入到了所有敏捷的、面 向对象的 J2EE Web 应用程序中。本文向您介绍了 Servlet 过滤器的使用。 本文讨论了 过滤器的高级设计,比较了当前规范(2.4)和以前(2.3)的模型,讲述了实现过滤器所 涉及的精确步骤,以及如何在 Web 应用程序中声明过滤器,然后与应用程序一起部署它。 本文还阐述了 Servlet 过滤器的一些最普遍应用,并提到了过滤器如何适应传统的 MVC 体系结构。

这是 J2EE 探索者系列的最后一篇文章。我们在年初通过粗略研究 Enterprise JavaBean 组件来开始我们的旅程,并提到了何时使用这些组件才真正有意义,以及何时

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号