JAVA WEB filter
2016-01-13 19:22
579 查看
Filter可认为是servlet的一种“加强版”,它是java下的一种过滤器 ,能实现对java web程序 客户端和服务器端消息的过滤,也就是在服务器段接受request之前,可以预先对request进行处理,或在客户端接受response之前,对response进行处理。
Filter也可对用户请求生成响应,但实际上很少会使用filter向用户请求生成响应。
使用filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给servlet进行处理并生成响应,最后filter再对服务器响应进行后处理。
Filter的作用:
1、在httpServletRequest到达servlet之前,拦截客户的httpServletRequest。
2、根据需要检查httpServletRequest,也可以修改HttpServletRequest头和数据。
3、httpServletResponse到达客户端之前,拦截httpServletResponse。
4、根据需要检查httpServletResponse,也可以修改httpServletResponse头和数据
创建Filter类
void init(FilterConfig):用于完成Filter的初始化
void destroy();用户FIlter销毁钱,完成某些资源的回收
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);
实现过滤功能,该方法就是对每个请求以及响应增加的额外处理
配置Filter拦截URL模式
区别在于,servlet通常只配置一个URL,而Filter可以同时拦截多个请求的URL。因此,在配置Filter的URL模式时通常会使用模式字符串,使得Filter可以拦截多个请求。与配置Servlet相似的是,
配置Filter同样有两种方式:
1、在Filter类中通过Annotation进行配置
2、在web.xml文件中通过配置文件进行配置
<filter>
<!--Filter的名字,相当于指定@WebFilter的filterName的属性-->
<filter-name>LogFilter</filter-name>
<!--Filter的实现类-->
<filter-class>com.xx.LogFilter</filter-class>
</filter>
<!--定义Filter拦截URL的地址-->
<filter-mapping>
<!--Filter的名字-->
<filter-name>LogFilter</filter-name>
<!--FIlter负责拦截的URL,相当于指定@WebFilter的urlPatterns属性-->
<url-pattern>/*</url-pattern>
</filter-mapping>
Filter也可对用户请求生成响应,但实际上很少会使用filter向用户请求生成响应。
使用filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给servlet进行处理并生成响应,最后filter再对服务器响应进行后处理。
Filter的作用:
1、在httpServletRequest到达servlet之前,拦截客户的httpServletRequest。
2、根据需要检查httpServletRequest,也可以修改HttpServletRequest头和数据。
3、httpServletResponse到达客户端之前,拦截httpServletResponse。
4、根据需要检查httpServletResponse,也可以修改httpServletResponse头和数据
创建Filter类
void init(FilterConfig):用于完成Filter的初始化
void destroy();用户FIlter销毁钱,完成某些资源的回收
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);
实现过滤功能,该方法就是对每个请求以及响应增加的额外处理
配置Filter拦截URL模式
区别在于,servlet通常只配置一个URL,而Filter可以同时拦截多个请求的URL。因此,在配置Filter的URL模式时通常会使用模式字符串,使得Filter可以拦截多个请求。与配置Servlet相似的是,
配置Filter同样有两种方式:
1、在Filter类中通过Annotation进行配置
2、在web.xml文件中通过配置文件进行配置
<filter>
<!--Filter的名字,相当于指定@WebFilter的filterName的属性-->
<filter-name>LogFilter</filter-name>
<!--Filter的实现类-->
<filter-class>com.xx.LogFilter</filter-class>
</filter>
<!--定义Filter拦截URL的地址-->
<filter-mapping>
<!--Filter的名字-->
<filter-name>LogFilter</filter-name>
<!--FIlter负责拦截的URL,相当于指定@WebFilter的urlPatterns属性-->
<url-pattern>/*</url-pattern>
</filter-mapping>
相关文章推荐
- Java 直连Hive Server运行Hive SQL
- 终于我背弃了疯狂JAVA讲义
- spring 的普通类中如何取得session和request对象
- Java URL处理
- maven搭建jersey+Spring4+JPA+Druid+quartz
- RabbitMQ入门教程 For Java【3】 - Publish/Subscribe
- java简单计算器
- Java [Leetcode 101]Symmetric Tree
- 创建你自己的 Java 注解类
- Java笔记3:Eclipse添加jar包
- Java中的函数
- Spring和SpringMVC的区别
- [Java基础]Java基础篇
- springandstruts2整合
- Eclipse调试进入JDK源码
- Java基础之多线程
- Java 继承
- java反射机制之Method invoke执行调用方法例子
- RxJava开发精要8 - 与REST无缝结合-RxJava和Retrofit
- java学习个人笔记---常见的垃圾回收器及存储结构分析