过滤器拦截器
来源:互联网 发布:武功已臻化境知乎 编辑:程序博客网 时间:2024/06/03 21:06
拦截器与过滤器的区别 :
- 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
- 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
- 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
- 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
- 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后。个人认为过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;Action处理完成返回后,拦截器还可以做其他过程(还没想到要做啥),再向上返回到过滤器的后续操作。
一个Filter 可负责拦截多个请求或响应:一个请求或响应也可被多个请求拦截。
创建一个Filter 只需两个步骤:
(1)创建Filter 处理类:
(2)在web.xml 文件中配置Filter 。
创建Filter 必须实现javax.servlet.Filter 接口,在该接口中定义了三个方法。
• void init(FilterConfig config): 用于完成Filter 的初始化。
• void destroy(): 用于Filter 销毁前,完成某些资源的回收。
• void doFilter(ServletRequest request, ServletResponse response,FilterChain chain): 实现过滤功能,该方法就是对每个请求及响应增加的额外处理。
过滤器Filter也具有生命周期:init()->doFilter()->destroy(),由部署文件中的filter元素驱动。在servlet2.4中,过滤器同样可以用于请求分派器,但须在web.xml中声明,<dispatcher>INCLUDE或FORWARD或REQUEST或ERROR</dispatcher>该元素位于filter-mapping中。
- 过滤器与拦截器
- struts2拦截器+过滤器
- 过滤器与拦截器
- 过滤器与拦截器
- java 拦截器、过滤器
- 拦截器与过滤器
- 过滤器和拦截器
- 拦截器 过滤器
- 过滤器,拦截器,监听器
- 拦截器、过滤器、监听器
- 拦截器和过滤器
- 过滤器,监听器,拦截器
- 过滤器,监听器,拦截器
- 过滤器,拦截器,监听器
- java 拦截器、过滤器
- 拦截器和过滤器
- Structs2过滤器拦截器
- struts2拦截器+过滤器
- 04,内存管理
- C++学习资料
- CentOS6.5下安装nginx1.10
- elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解
- 自定义进度条样式
- 过滤器拦截器
- Hadoop 编程模型 VS Spark 编程模型
- oracle 学习笔记
- 九、get_device_parent 的作用
- HTML forms and onclick/onfocus
- Centos安装Shadowsocks记录
- 【JWPlayer】官方JWPlayer去水印步骤
- Spark Broadcast 广播变量
- 列间距column-gap