Filter过滤器小知识

Filter过滤器小知识

1、简介
服务器端程序,负责拦截请求,在进行主程序之前对请求进行相关处理

2、常见应用
session与cookie登陆、中文乱码问题、响应数据压缩等

3、配置拦截路径
(1)web.xml

<!-- 配置tomcat过滤器实现类 -->
<filter>
<!-- filter-name : 唯一,命名过滤器 -->
    <filter-name>filter</filter-name>
   <!-- filter-class : 过滤器实现类 -->
    <filter-class>com.kunkun.filter1.HelloFilter</filter-class>
</filter>
<!-- 过滤器使用路径 -->
<filter-mapping>
    <filter-name>filter</filter-name>
	<!-- 拦截路径 -->
    <url-pattern>/*</url-pattern>
</filter-mapping>

(2)注解方式

@WebFilter("/*")  //拦截路径
		public class HelloFilter implements Filter {
		    @Override
		    public void init(FilterConfig filterConfig) throws ServletException { }
			@Override
		    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
		        System.out.println("欢迎阅读坤坤博客");
			 //放行,进入下一个目标(下一个过滤器或者主程序代码)
		     filterChain.doFilter(servletRequest,servletResponse);}
			 @Override
		    public void destroy() { }
		}

4、生命周期
(1)init : 参数 FilterConfig,获取filter注册名称及初始化参数,执行一次
(2)doFilter : 拦截请求资源,执行多次
(3)destroy : 服务器关闭后,filter对象被销毁

5、拦截路径(url-pattern)
(1)全路径匹配 以 / 开始
(2)以目录匹配 以 / 开始 以 * 结束
(3)以后缀名匹配 以 * 开始 以后缀名结束


REQUEST:默认值,浏览器直接请求资源
FORWARD:拦截转发访问资源
INCLUDE:包含访问资源
ERROR:错误跳转全局错误页面
ASYNC:异步访问资源


6、过滤链
(1) 注解配置:按照类名的字符串比较规则比较,值小的先执行

如: axxxx 和 bxxxx,axxxx就先执行

(2) web.xml配置: 上下代码顺序

发布了67 篇原创文章 · 获赞 7 · 访问量 4686

猜你喜欢

转载自blog.csdn.net/weixin_44717095/article/details/104757450