package cn.wxg.user.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 CharsetEncodingFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gb2312");
chain.doFilter(request, response);
} public void init(FilterConfig arg0) throws ServletException { }}
web.xml中:
<filter>
   <filter-name>CharFilter</filter-name>
   <filter-class>cn.wxg.filter.CharFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>CharFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

解决方案 »

  1.   

    字体有点小.
    我就是在 doFilter 方法下-->写了:
    request.setCharacterEncoding("gb2312");
    chain.doFilter(request, response); 


    另一个问题:
         在struts中怎样写呢?
         我将上面的代码,放在struts中,web.xml中总是报错.为什么呢??
      

  2.   


    <web-app> <filter>
    <filter-name>CharsetEncodingFilter</filter-name>
    <filter-class>cn.wxg.filter.CharsetEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>CharsetEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    ...
    <web-app>
    <filter>
    <filter>紧挨着<web-app> ,否则,报错...
      

  3.   

    filter-class 包名和类名都配置错了,应为 cn.wxg.user.filter.CharsetEncodingFilter过滤器与 Struts 没有任何关系,所有的请求都会被这个过滤器给拦截进行处理的。PS:过滤器中最好也加上:
    response.setCharacterEncoding("gb2312");
      

  4.   


    override
     public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            request.setCharacterEncoding("gb2312");
            chain.doFilter(request, response);        
        }