![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ee1f7264190643eae1287295a34a9ffc.png)
一、过滤器
1.1介绍
Filter即为过滤,主要用在Servlet之外对Request或者Response进行修改。它主要用于对用户进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器进行后处理,再一个web应用中,可以开发编写多个Filter,这些Filter组合起来,称为一个Filter链。
若是一个过滤器链:先配置先执行,响应式以相反的顺序执行
1.2实现
package com.example.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/s01")
public class Filter01 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("Filter01 init...");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("Filter01正在拦截");
//放行资源
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("Filter01处理响应");
}
@Override
public void destroy() {
System.out.println("Filter01 destroy...");
}
}
1.3实例
1.3.1请求乱码处理
二、监听器
2.1介绍
web监听器是Servlet中一种特殊的类,能帮助开发者监听web中的特定实践,比如ServletContent,HttpSession,ServletRequest的创建和销毁;变量的创建、销毁和修改等。可以在某些动作前后增加处理,实现监。例如统计在线人数。