spring3 mvc框架乱码问题
来源:互联网 发布:宽带连接拨号软件 编辑:程序博客网 时间:2024/04/24 02:19
今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码:
- <filter>
- <filter-name>Character Encoding</filter-name>
- <filter-class>com.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>Character Encoding</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
其中:com.filter.CharacterEncodingFilt
觉得这样做有点麻烦,百度了一下,发spring中自带了一个设置编码的过滤器org.springframework.web.filter.CharacterEncodingFilter,所以在web.xml中可以改成这样:
- <filter>
- <filter-name>Character Encoding</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>Character Encoding</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
这样就不用自己写过滤器了。
但是还是觉得有点麻烦,因为使用spring mvc的时候,已经在web.xml中设置了servlet:
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
上面已经对请求做了一次过滤,如果再加一个过滤器感觉有点多余,直接改一下DispatcherServlet这个类,使它具有修改编码的功能不是更好?于是就写了一个新的类,继承自DispatcherServlet,代码如下:
- package com.mocha.servlet;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.web.servlet.DispatcherServlet;
- public class EncodingDispatcherServlet extends DispatcherServlet {
- private String encoding;
- public void init(ServletConfig config) throws ServletException {
- encoding = config.getInitParameter("encoding");
- super.init(config);
- }
- protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
- request.setCharacterEncoding(encoding);
- super.doService(request, response);
- }
- }
然后将web.xml中的配置改为:
- <servlet>
- <servlet-name>spring</servlet-name>
- <servlet-class>com.mocha.servlet.EncodingDispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>spring</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
OK,乱码消失,现在总结一下乱码的问题,get方法乱码解决方法一般是将tomcat中conf目录下server.xml文件中加入
- <Connector port="8080" maxHttpHeaderSize="8192"
- maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />
而post方法解决乱码是设置一个专门处理编码转换的filter或者servlet。
0 0
- spring3 mvc框架乱码问题
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- Spring3 MVC使用@ResponseBody的乱码问题及解决办法
- Spring3 MVC使用@ResponseBody的乱码问题及解决办法
- Spring3 MVC使用@ResponseBody的乱码问题及解决办法
- spring3 mvc json问题
- MVC 框架下的中文乱码问题
- Spring3.2 MVC框架搭建
- Spring3.0 MVC @ResponseBody乱码问题解决
- spring3 mvc @ResponseBody 中文乱码解决方案
- spring3 mvc rest返回中文乱码? 解决问题
- Spring3 MVC - 3到Spring MVC框架简介
- OS 9采用率增速放缓 11月增加4个百分点至70%
- iOS网络监测方法
- perl 数组元素为空和数组元素为undef 是两码事
- Salesforce CEO:鲍尔默和其他CEO关系比较糟糕
- Java工程师如何在Docker上进行开发
- spring3 mvc框架乱码问题
- 波导新款手机亮相工信部:三大实体键是汉字!
- JavaEE_Mybatis_SpringMVC_整合开发奇葩问题1:dataSource报错?
- 鲍尔默炮轰纳德拉提出的通用Windows平台战略
- Genymotion强大好用高性能的Android模拟器(在电脑流畅运行APK安卓软件游戏的利器)
- 富士康投巨资要转型:布局二手智能手机市场
- Linux_DHCP&DHCP Relay
- C# LeetCode 解决 ExcelConverttNumber to Column
- 雪佛兰新一代科鲁兹两厢谍照首曝 造型