package com.filter;
import javax.servlet.*;
import java.io.IOException;
public class CharFilter implements Filter {
//导包的时候不要导错了 要servlet的Flter
//服务器启动就初始化 执行该函数
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("CharFilter init()");
}
//请求执行该函数
@Override
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("CharFilter执行前...");
chain.doFilter(request,response); //让我们的请求继续走,如果不写 程序走到这就停止了
System.out.println("ChartFilter执行后...");
}
// 服务器关闭就销毁 执行该函数
@Override
public void destroy() {
System.out.println("CharFilter destroy()");
}
}
web.xml 配置
<filter>
<filter-name>Char_Filter</filter-name> //过滤器的名字
<filter-class>com.filter.CharFilter</filter-class> 过滤器的类
</filter>
<filter-mapping>
<filter-name>Char_Filter</filter-name> //指定过滤器
<url-pattern>/servlet/*</url-pattern> //该路径下的任何类请求都会经过Char_Filter过滤器
</filter-mapping>
一般建议直接/* 直接接受所有请求经过一个过滤器
一般都是写多个过滤器把路径分开这样子
还有就是如何解决不了可能就是服务器编码的问题了