快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

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

时间:2011-04-11 IBM Kyle Gabhart

Servlet 过滤器是可插入的 Web 组件,它允许我们实现 Web 应用程序中的预处理和后 期处理逻辑。过滤器支持 servlet 和 JSP 页面的基本请求处理功能,比如日志记录、性 能、安全、会话处理、XSLT 转换,等等。 过滤器最初是随 Java Servlet 2.3 规范发布 的,最近定稿的 2.4 规范对它进行了重大升级。在这 J2EE 探索者系列文章的最后一篇中 ,我将向您介绍 Servlet 过滤器的基础知识 ―― 比如总体的体系结构设计、实现细节, 以及在 J2EE Web 应用程序中的典型应用,还会涉及一些预计最新的 Servlet 规范将会提 供的扩展功能。

Servlet 过滤器是什么?

Servlet 过滤器是小型的 Web 组件,它们拦截请求和响应,以便查看、提取或以某种 方式操作正在客户机和服务器之间交换的数据。过滤器是通常封装了一些功能的 Web 组件 ,这些功能虽然很重要,但是对于处理客户机请求或发送响应来说不是决定性的。典型的 例子包括记录关于请求和响应的数据、处理安全协议、管理会话属性,等等。过滤器提供 一种面向对象的模块化机制,用以将公共任务封装到可插入的组件中,这些组件通过一个 配置文件来声明,并动态地处理。

Servlet 过滤器中结合了许多元素,从而使得过滤器成为独特、强大和模块化的 Web 组件。也就是说,Servlet 过滤器是:

声明式的:过滤器通过 Web 部署描述符(web.xml)中的 XML 标签来声明。这样允许 添加和删除过滤器,而无需改动任何应用程序代码或 JSP 页面。

动态的:过滤器在运行时由 Servlet 容器调用来拦截和处理请求和响应。

灵活的:过滤器在 Web 处理环境中的应用很广泛,涵盖诸如日志记录和安全等许多最 公共的辅助任务。过滤器还是灵活的,因为它们可用于对来自客户机的直接调用执行预处 理和后期处理,以及处理在防火墙之后的 Web 组件之间调度的请求。最后,可以将过滤器 链接起来以提供必需的功能。

模块化的:通过把应用程序处理逻辑封装到单个类文件中,过滤器从而定义了可容易地 从请求/响应链中添加或删除的模块化单元。

可移植的:与 Java 平台的其他许多方面一样,Servlet 过滤器是跨平台和跨容器可移 植的,从而进一步支持了 Servler 过滤器的模块化和可重用本质。

可重用的:归功于过滤器实现类的模块化设计,以及声明式的过滤器配置方式,过滤器 可以容易地跨越不同的项目和应用程序使用。

透明的:在请求/响应链中包括过滤器,这种设计是为了补充(而不是以任何方式替代 )servlet 或 JSP 页面提供的核心处理。因而,过滤器可以根据需要添加或删除,而不会 破坏 servlet 或 JSP 页面。

所以 Servlet 过滤器是通过一个配置文件来灵活声明的模块化可重用组件。过滤器动 态地处理传入的请求和传出的响应,并且无需修改应用程序代码就可以透明地添加或删除 它们。最后,过滤器独立于任何平台或者 Servlet 容器,从而允许将它们容易地部署到任 何相容的 J2EE 环境中。

在接下来的几小节中,我们将进一步考察 Servlet 过滤器机制的总体设计,以及实现 、配置和部署过滤器所涉及的步骤。我们还将探讨 Servlet 过滤器的一些实际应用,最后 简要考察一下模型-视图-控制器(MVC)体系结构中包含的 Servlet 过滤器,从而结束本 文的讨论。

Servlet 过滤器体系结构

正如其名称所暗示的, Servlet 过滤器用于拦截传入的请求和/或传出的响应,并监视 、修改或以某种方式处理正在通过的数据流。过滤器是自包含、模块化的组件,可以将它 们添加到请求/响应链中,或者在无需影响应用程序中其他 Web 组件的情况下删除它们。 过滤器仅只是改动请求和响应的运行时处理,因而不应该将它们直接嵌入 Web 应用程序框 架,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号