Filter 过滤器
Filter:过滤器,用来过滤网站的数据
- 处理中文乱码
- 登录验证
- ……
Filter开发步骤:
- 导包
package com.cheng.filter;
-
编写过滤器
实现Filter接口
public class CharacterEncodingFilter implements Filter {
// 初始化:web服务器启动就已经初始化了,随时准备过滤
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharacterEncodingFilter初始化");
}
// chain:链
/*
* 1、过滤中的所有代码,在过滤特定请求的时候都会执行
* 2、必须要让过滤器继续通行
* chain.doFilter(request, response);
* */
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
System.out.println("CharacterEncodingFilter执行前……");
chain.doFilter(request, response);// 让我们的请求继续走,如果不写,程序到这里就会被拦截停住
System.out.println("CharacterEncodingFilter执行后……");
}
// 销毁
public void destroy() {
System.out.println("CharacterEncodingFilter销毁");
}
- 在web.xml 配置Filter过滤器
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.cheng.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<!-- 只要是/servlet的任何请求,都会经过这个过滤器 -->
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>