关于SSH中文乱码的一个小总结

  最近在学习SSH,练习中多次出现中文乱码问题,使用spring的编码过滤器也一度没解决问题,搞得我差点就自己写过滤器了,但想想自己既然是在学SSH就应该尽量SSH的东西,最后还是解决了,现在把对spring编码过滤器的作用总结一下作为自己的学习笔记,希望对那些我一样刚学习SSH的新手有点帮助,也希望有人来指出我的错误理解.
   spring的编码过滤器是org.springframework.web.filter.CharacterEncodingFilte
1、作用时需要在web.xml进行配置
        <filter>
         <filter-name>encodingFilter</filter-name>
         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
         <init-param>
           <param-name>encoding</param-name>
           <param-value>GBK</param-value> //指定字符集
</init-param>
         <init-param>
             //当已经有字符集时,是否用本过滤器的字符集替换
             <param-name>forceEncoding<param-name>
           <param-value>true</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
(我在练习时一般只用中文跟英文,没去考虑国际化,所以一般是用GBK,因为它是大陆官方发布的字符集,对中文的支持比UTF-8要好,如现实开发,一般还是用UTF-8。)
    配置过滤器时,还要注意的地方就是要把本配置放在web.xml过滤器配置的第一位,有其它过滤器配置在它的前面,可能会有干扰。原因我也不清楚。
   2、 配置好web.xml后,接着就是在struts.properties加上struts.i18n.encoding=GBK
如果是用UTF-8,就不用了,因为默认就UTF-8,这里我有点疑问,就是有人跟我说struts2
在这里配了,就可以了,根本不用配置过滤器,但我还是在action接参时遇到乱码,所以我索性全配上。
   3、在Myeclipse下把工程属性的Text file encoding也设为GBK,默认就是GBK.再就是页面也统一设为GBK。这样配置后,乱码问题一般就没问题了
   最后就是页面的请求方式一定要记得显式设为POST哦
<form action="" method="post">
虽然默认是post方式,但不显式设置也可能出现乱码。好了就写这么多吧,希望大家拍砖。</form>

你可能感兴趣的:(spring,Web,MyEclipse,struts,ssh)