Struts里面容易出现乱码的地方及解决方法

容易出现乱码的地方一般有三个地方:
    a.页面出现乱码
    b.传递参数出现乱码
    c.资源文件出现乱码

对应的解决方法:
    a.一般都是在页面统一编码为utf-8就行了:加上一名pageEncoding=utf8.
    b.要修改Tomcat下的server.xml文件,在里面加上URIEncoding=utf-8,然后再在web.xml文件里面定义过滤器.
      # 在Tomcat的conf文件夹下的server.xml文件里的大概50行左右:
        <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

      # 添加一个过滤器filter类,该类实现了Filter接口,我们只需要在它的doFilter()方法里面添加两句代码就行了,然后再到
        web.xml文件里面添加这个过滤器:
        过滤器用到的Filter类:

public class CharactorEncodingFilter implements Filter {

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

        }

        @Override
        public void doFilter(ServletRequest request, ServletResponse response,
                        FilterChain chain) throws IOException, ServletException {
                // TODO Auto-generated method stub
                request.setCharacterEncoding("utf-8");
                chain.doFilter(request, response);   //添加这两代码就行了...
        }

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

        }

}
        web.xml文件添加的语句:
      
 <filter>            
                   <filter-name>CharacterEncoding</filter-name>
                        <filter-class>com.jie.base.CharactorEncodingFilter</filter-class>
                  </filter>
                  <filter-mapping>
                         <filter-name>CharacterEncoding</filter-name>
                         <url-pattern>/*</url-pattern>
                  </filter-mapping>

    c.用JDK自带的native2ascii.exe进行编码的转换,或者添加一个叫ResourceBoudle 的插件帮助解决(没用过这个插件)
      推荐使用第二种方法:安装ResourceBundle Editor插件后,操作很方便. 

你可能感兴趣的:(jdk,tomcat,xml,Web,struts)