一、Servlet过滤器Filter
-
Servlet里面的过滤器作用
- 动态地拦截请求和响应,变换或使用包含在请求或响应中的信息
- 在客户端的请求访问后端资源之前,拦截这些请求。
- 在服务器的响应发送回客户端之前,处理这些响应(比如可以设置编码跟内容类型)。
-
Filter的生命周期
- init(FilterConfig filterConfig) //只容器初始化的时候调用一次,即应用启动的时候加载一次
- doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 只要命中过滤规则就触发,可以在filter中根据条件决定是否调用chain.doFilter(request, response)方法, 即是否让目标资源执行
- destroy() //只容器销毁的时候调用一次,即应用停止的时候调用一次
-
元注解: @WebFilter
Filter 的名称:filterName;
过滤的Servlet可以指定多个,表示对这几个特定的的servlet 进行过滤:servletNames;
指定 Filter拦截的 URL,和上面的servletNames配置一样,用*可以表示通配符,但是不用字母后加*,应该按照模块划分(比如/user/*):urlPatterns。
注意:同个项目中有多个过滤器会一起执行,需要看具体情况注释掉一些过滤器。