自己写了个发邮件的小项目,但是路径是中文的话,经过action跳转后,得到的路径中.中文部分,会变成乱码,页面form的提交方式用的是post,页面编码统一UTF-8,不知道为什么这样传送到action后会变乱码....然后我写了个字符过滤器,奇怪的事就发生了,原来可以显示的页面一片空白,然后把过滤器注释掉,又正常显示,这是什么原因

解决方案 »

  1.   

    问题已经解决了public class CharacterEncodingFilter implements Filter {

    private String encoding;

    public void destroy() {
    encoding = null;
    } public void doFilter(ServletRequest req, ServletResponse res,
    FilterChain chain) throws IOException, ServletException {
    // if(encoding != null && "".equals(encoding)) {
    req.setCharacterEncoding(encoding);
    res.setCharacterEncoding(encoding);
    chain.doFilter(req, res);
    }
    // } public void init(FilterConfig conf) throws ServletException {
    encoding = conf.getInitParameter("encoding");
    System.out.println(encoding);
    }}<filter>
    <filter-name>characterFilter</filter-name>
    <filter-class>com.dne.javamail.commons.CharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>characterFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>我把那2行注释之后就可以了  -_-||想不通
      

  2.   

    看到问题了//        if(encoding != null && !"".equals(encoding)) {后半句判断少了个非...粗心啊...