我在web.xml文件里加上
<filter>
    <filter-name>CharsetEncoding</filter-name>
    <filter-class>com.zt.filter.CharsetEncodingFilter</filter-class>
    <init-param>
      <param-name>RequestEncoding</param-name>
      <param-value>iso-8859-1</param-value>
    </init-param>
    <init-param>
      <param-name>ResponseEncoding</param-name>
      <param-value>gbk</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>CharsetEncoding</filter-name>
    <url-pattern>*.jsp</url-pattern>
  </filter-mapping>
再去放问我的页面是就报HTTP Status 404 The requested resource (/Game/main/Entry.jsp) is not available 
类应该是没问题的,
public class CharacterFilter  implements Filter
{

private FilterConfig config = null;
    //private String RequestEncoding = null;
    private String ResponseEncoding = null;
    private String oldEncoding = null;    public void init(FilterConfig arg0) throws ServletException {
        this.config = arg0;
 //  System.out.println("ddddddddddddddddddddddddddddddddddddd");
        //this.RequestEncoding = config.getInitParameter("RequestEncoding");//获得<init-param>参数
        this.ResponseEncoding = config.getInitParameter("ResponseEncoding");
    }    /* (non-Javadoc)
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc)
        throws IOException, ServletException {
      // System.out.println("mmmmmmmmmmmmmmmmmmmmmmmmmmm");
     if(this.config == null){
            return;
        }
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse)res;
        this.oldEncoding = request.getCharacterEncoding();        if((oldEncoding == null || isIOS88591(oldEncoding))){
            request.setCharacterEncoding(this.ResponseEncoding);
        }
      
        fc.doFilter(req, res);
    }    public void destroy() {
    }    private boolean isIOS88591(String endcoding){
        endcoding = endcoding.toLowerCase();
        return endcoding.startsWith("iso")&& (endcoding.indexOf("8859") != -1) && endcoding.endsWith("1");
    }
/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub }

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【chyx413332087】截止到2008-07-16 14:19:39的历史汇总数据(不包括此帖):
    发帖的总数量:41                       发帖的总分数:645                      每贴平均分数:15                       
    回帖的总数量:187                      得分贴总数量:65                       回帖的得分率:34%                      
    结贴的总数量:41                       结贴的总分数:645                      
    无满意结贴数:12                       无满意结贴分:300                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:29.27 %               无满意结分率:46.51 %                  
    敬礼!
      

  2.   

    是你的<filter-mapping>的错误<url-pattern>/*.do</url-pattern><url-pattern>/*.jsp</url-pattern>
      

  3.   

    感觉楼主这样写也可以,不一定要像楼上说的错的应该是你的类名<filter-class>com.zt.filter.CharsetEncodingFilter </filter-class>
    写成com.zt.filter.CharacterFilter才对