利用注解的方式来拦截所有请求。
@WebFilter("/*")
出现乱码的问题主要就是编码和解码的格式不一样,只有掌握这一点就OK
出现响应post乱码为什么不能这样写?
resp.setContentType("text/html;character=utf-8");
因为我们针对项目的post请求不一定全部都是text/html,也有可能处理的是视频或者图片,所以我们要针对所有的请求。
package 过滤器;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")
public class characterFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("拦截了所有的请求");
//处理全部的post请求的乱码和响应乱码
servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setCharacterEncoding("UTF-8");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}