解决spring mvc中乱码的问题。
来源:互联网 发布:ca认证 知乎 编辑:程序博客网 时间:2024/03/29 08:45
今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码:
<span style="font-size:18px;"> <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></span>
其中:com.filter.CharacterEncodingFilt
觉得这样做有点麻烦,百度了一下,发spring中自带了一个设置编码的过滤器org.springframework.web.filter.CharacterEncodingFilter,所以在web.xml中可以改成这样:
<span style="font-size:18px;"> <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></span>
这样就不用自己写过滤器了。
但是还是觉得有点麻烦,因为使用spring mvc的时候,已经在web.xml中设置了servlet:
<span style="font-size:18px;"> <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></span>
上面已经对请求做了一次过滤,如果再加一个过滤器感觉有点多余,直接改一下DispatcherServlet这个类,使它具有修改编码的功能不是更好?于是就写了一个新的类,继承自DispatcherServlet,代码如下:
<span style="font-size:18px;">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); }}</span>
然后将web.xml中的配置改为:
<span style="font-size:18px;"> <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></span>
OK,乱码消失,现在总结一下乱码的问题,get方法乱码解决方法一般是将tomcat中conf目录下server.xml文件中加入
<span style="font-size:18px;"><Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" /></span>
而post方法解决乱码是设置一个专门处理编码转换的filter或者servlet。
0 0
- 解决spring mvc中乱码的问题。
- Spring MVC 中解决中文乱码的问题
- 解决Spring MVC中传值乱码的问题
- 解决spring mvc 乱码问题
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题
- 解决spring3 mvc中乱码的问题。
- 解决spring3 mvc中乱码的问题。
- spring MVC解决中文传参乱码问题
- 解决Spring Web MVC中POST中文乱码问题
- spring mvc 3.0 中解决post表单提交出现的中文乱码问题
- spring mvc解决中文乱码问题需在web.xml文件中添加下面的配置
- Spring MVC中解决中文乱码问题时useBodyEncodingForURI="true"的作用
- [Spring MVC] @ResponseBody返回结果乱码问题的解决
- [Spring MVC] @ResponseBody返回结果乱码问题的解决
- 面向对象(数组工具类+单例设计模式)-第16天
- Processing(1) - 练习
- HTTP状态总结
- oracle OCCI编程
- 一个酷炫实用的下拉刷新开源库
- 解决spring mvc中乱码的问题。
- 打包volley
- ssh+mysql 登陆 及增删改成
- mousemove事件,鼠标移动过快时,无法全部响应
- navigationbar右侧加两个自定义按钮
- 华为oj: 提取不重复的整数
- python实现杨辉三角(使用生成器generator)
- linux常用命令(14):head命令
- Java ArrayList遍历方法