PS:注意不管是用GBK或者UTF-8都要注意页面是否同一使用,如果不统一,页面还是会报错乱码
过滤器初始化在服务器运行时同时运行
package com.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodoFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.print("编码过滤器");
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
System.out.print("--encodofilter init");
}
}
web.xml 配置
过滤效果截图
下面是页面报错部分;
新建一个JPS页面(notfind.jsp)添加如下代码
<%@ page language="java" isErrorPage="true" pageEncoding="gbk"%>
web.xml添加如下代码
<error-page>
<error-code>404</error-code>
<location>/notfind.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
运行图片: