资源描述
servlet Filter(过滤器)讲解
Filter 技术是servlet 2.3 新增加的功能。servlet2.3是sun公司与2000年10月发布的。
工作原理图:
1、 Servlet过滤器是什么?
Servlet过滤器是通过个配置文件来灵活声明模块化可重用组件,过滤器动态地处理传入请求和传出响应,并且无需修改应用代码就可以透明地添加或删除它们,过滤器独立于任何平台或者Servlet容器。
2、Servlet过滤器优点
声明式:过滤器通过 Web 部署描述符(web.xml)中 XML 标签来声明,这样就可以允许添加和删除过滤器而无需改动任何应用代码或 JSP 页面。
动态:过滤器在运行时由Servlet容器来拦截来处理请求和响应。
灵活:过滤器在 Web 处理环境中应用很广泛,涵盖诸如日志记录和安全等许多公共辅助任务,它们可用于对来自客户机直接执行预处理和后期处理以及处理在防火墙之后的Web 组件间调度请求,最后可以将过滤器链接起来以提供必需功能。
模块化:通过把应用处理逻辑封装到单个类文件中,从而定义了可容易地从请求/响应链中添加或删除模块化单元。
可移植:和 Java 平台其他许多方面一样,Servlet过滤器是跨平台、跨容器和可移植的,从而进一步支持了Servler过滤器模块化和可重用的本质。
可重用:归功于过滤器实现类模块化设计以及声明式过滤器配置方式,过滤器可以容易地跨越区别项目和应用使用。
透明:在请求/响应链中,包括过滤器这种的这种设计是为了补充(而不是以任何方式替代)servlet或JSP页面提供核心处理,因而过滤器可以根据需要添加或删除而不会破坏servlet或JSP页面
3、Servlet过滤器的使用
一个执行过滤器的Java 类必须实现javax.servlet.Filter 接口。这一接口含有三个方法:
init(FilterConfig):这是容器所调用的初始化方法。它保证了在第一次 doFilter() 调用前由容器调用。它能获取在 web.xml 文件中指定的filter初始化参数。
doFilter(ServletRequest, ServletResponse, FilterChain):这是一个完成过滤行为的方法。它同样是上一个过滤器调用的方法。引入的 FilterChain 对象提供了后续过滤器所要调用的信息。
destroy():容器在销毁过滤器实例前,doFilter()中的所有活动都被该实例终止后,调用该方法。
展开阅读全文