JSP Filter过滤器设置编码问题。。。

我在doFilter方法中
arg2.doFilter(arg0, arg1);语句后设置arg1.setContentType("text/html;charset=GBK");或者arg1.setCharacterEncoding("GBK");并没有作用,没有我想要的GBK编码,
而设置了arg1.setContentType("text/plain");倒是能把数据变成纯文本,这是为什么?
为什么响应编码在过滤器里设置无效

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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.omg.CORBA.Request;

public class EncodeFilter implements Filter {

@Override
public void destroy() {
// TODO Auto-generated method stub

}

@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("字符编码过滤器");

HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;

request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}

@Override
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
}

}

以上就是Filter过滤器的代码,  都设置成UTF-8 支持中文,  写好了以上代码之后,要在web.xml文件中进行配置。

追问

我配置web.xml也配好,你上面说的我知道可以
我问的是response.setCharacterEncoding("GBK");为什么不起作用

温馨提示:答案为网友推荐,仅供参考
相似回答