过滤器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>
复制代码

 

posted @   木氷  阅读(3375)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示