过滤器Filter
作用:用来过滤网站的数据,例如过滤掉脏话;
- 处理中文乱码
- 登录验证….
重点理解 : 从上图我们可以看出过滤器在处理请求的时候肯定也和servle一样要获得request 和response 然后再进行所需处理;
实现过程:
- 建立没有模板的普通maven项目:
- maven导包
- 导包(重点:别导错):
- 编写过滤器:实现Filter接口,重写对应的方法即可
public class CharacterEncodingFilter implements Filter {
@Override
//初始化:web服务器启动,就以及初始化了,随时等待过滤对象出现!
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharacterEncodingFilter初始化");
}
@Override
//Chain:链
/*
* 1.过滤中的所有代码,在过滤特定请求的时候都会执行
* 2.必须要让过滤器继续通行
* filterChain.doFilter(servletRequest,servletResponse);
* */
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//处理乱码
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=UTF-8");
System.out.println("CharacterEncodingFilter执行前");
filterChain.doFilter(servletRequest,servletResponse);//让我们的请求继续走,如果不写,程序到这里就被拦截停止!
System.out.println("CharacterEncodingFilter执行后");
}
@Override
//销毁:web服务器关闭的时候,过滤器会销毁
public void destroy() {
System.out.println("CharacterEncodingFilter销毁");
}
}
- 在web.xml中配置 Filter
重点讲解:
(1) :在你这个web启动的时候Filter已经初始化,时刻准备着
(2): 过滤中的所有代码,在过滤特定请求的时候都会执行
(3) :另一个变量Chain(链): 必须要让过滤器继续通行
filterChain.doFilter(servletRequest,servletResponse);