过滤器filter的配置

Posted kihyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了过滤器filter的配置相关的知识,希望对你有一定的参考价值。

推荐:Servlet之Filter详细讲解

多个filter拦截的同一个请求,按web.xml配置顺序进行过滤

返回的响应的从最后配置的filter开始过滤

具体配置步骤:

编写Filter实现类

 1 package cn.kihyou.b2c.filter;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 
12 //实现接口:javax.servlet.Filter;
13 public class AdminFilter implements Filter {
14 
15     // 三个重要方法:初始化:init();拦截到要执行的方法:doFilter();销毁:destroy();
16 
17     @Override
18     public void init(FilterConfig filterConfig) throws ServletException {
19         // TODO Auto-generated method stub
20         // Filter.super.init(filterConfig);
21     }
22 
23     @Override
24     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
25             throws IOException, ServletException {
26         // TODO Auto-generated method stub
27         // 1.拦截客户端/上一个filter发来的请求,是否放行到Servlet/下一个Filter
28         System.out.println("AdminFilter拦截到请求");
29         // 放行(放不放行您可以自己看着办)
30         chain.doFilter(request, response);
31         // 2.拦截servlet/filter发回的响应,是否放行到客户端/上一个filter
32         System.out.println("AdminFilter拦截到响应");
33 
34     }
35 
36     @Override
37     public void destroy() {
38         // TODO Auto-generated method stub
39         // Filter.super.destroy();
40     }
41 
42 }

 

配置web.xml

 1 <!-- Filter,过滤器 -->
 2     <filter>
 3         <!-- filter名,随便起 -->
 4         <filter-name>AdminFilter</filter-name>
 5         <!-- 实现类所在目录 -->
 6         <filter-class>cn.kihyou.b2c.filter.AdminFilter</filter-class>
 7         <!-- 初始化参数 -->
 8         <!-- 设置字符集,charset:UTF-8 -->
 9         <init-param>
10             <!-- 参数名 -->
11             <param-name>charset</param-name>
12             <!-- 参数值 -->
13             <param-value>UTF-8</param-value>
14         </init-param>
15 
16         <!-- 设置内容类型及其字符集,contentType:text/html;charset=UTF-8 -->
17         <init-param>
18             <param-name>contentType</param-name>
19             <param-value>text/html;charset=UTF-8</param-value>
20         </init-param>
21     </filter>
22 
23     <!-- filter的映射 -->
24     <filter-mapping>
25         <!-- 对应的filter名 -->
26         <filter-name>AdminFilter</filter-name>
27         <!-- 要进行拦截过滤的目录 -->
28         <url-pattern>/web/admin/*</url-pattern>
29     </filter-mapping>
30 
31     <session-config>
32         <!-- 超时时间,单位:分钟 -->
33         <session-timeout>30</session-timeout>
34     </session-config>

 

以上是关于过滤器filter的配置的主要内容,如果未能解决你的问题,请参考以下文章

java---servlet与filter的联系与区别

基于内部片段的graphql过滤器(gatsbyJS)

配置登录过滤器

JavaWeb 之 Filter:过滤器

过滤器Filter

web.xml配置编码过滤器解决中文乱码问题