[转帖]Spring MVC POST中文乱码解决方案_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5628 | 回复: 0   主题: [转帖]Spring MVC POST中文乱码解决方案        下一篇 
q563725885
注册用户
等级:少校
经验:1134
发帖:98
精华:1
注册:2013-5-7
状态:离线
发送短消息息给q563725885 加好友    发送短消息息给q563725885 发消息
发表于: IP:您无权察看 2013-5-8 13:33:25 | [全部帖] [楼主帖] 楼主

POST中文乱码解决方案

以前,我都是自己编写一个filter,来实现编码,代码如下:

北京联动北方科技有限公司

1 public class CharacterEncodingFilter implements Filter {
       2
       3 private final static Logger log= LoggerFactory.getLogger(CharacterEncodingFilter.class);
       4
       5 private String characterEncoding; //编码方式配置在web.xml文件中
       6 private boolean enabled; //是否启用此Filter,配置在web.xml中
       7
       8 @Override
       9 public void destroy() {
            10 characterEncoding = null;
      11 }
      12
      13 @Override
      14 public void doFilter(ServletRequest request, ServletResponse response,
      15 FilterChain chain) throws IOException, ServletException {
            16 if (enabled || characterEncoding != null) {
                  17 request.setCharacterEncoding(characterEncoding);
                  18 response.setCharacterEncoding(characterEncoding);
            19 }
            20 chain.doFilter(request, response);
      21 }
      22
      23 @Override
      24 public void init(FilterConfig config) throws ServletException {
            25 characterEncoding = config.getInitParameter("characterEncoding");
            26 enabled = "true".equalsIgnoreCase(config.getInitParameter("enabled").trim());
      27 }
28 }

;

北京联动北方科技有限公司

然后自己在web.xml文件中做如下配置

北京联动北方科技有限公司

1 <filter>
2 <filter-name>characterEncodingFilter</filter-name>
3 <filter-class>com.qunar.training.model.filter.CharacterEncodingFilter</filter-class>
4 <init-param>
5 <param-name>characterEncoding</param-name>
6 <param-value>UTF-8</param-value>
7 </init-param>
8 <init-param>
9 <param-name>enabled</param-name>
10 <param-value>true</param-value>
11 </init-param>
12 </filter>
13 <filter-mapping>
14 <filter-name>characterEncodingFilter</filter-name>
15 <url-pattern>/*</url-pattern>
16 </filter-mapping>

;

北京联动北方科技有限公司

其实我们可以不必这么麻烦,重复造轮子。

spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题,具体配置如下:

北京联动北方科技有限公司

1 <filter>
2 <filter-name>CharacterEncodingFilter</filter-name>
3 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
4 <init-param>
5 <param-name>encoding</param-name>
6 <param-value>utf-8</param-value>
7 </init-param>
8 </filter>
9 <filter-mapping>
10 <filter-name>CharacterEncodingFilter</filter-name>
11 <url-pattern>/*</url-pattern>
12 </filter-mapping>

;

北京联动北方科技有限公司

    以后我们项目及所有页面的编码均为UTF-8。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论