今天搭建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.CharacterEncodingFilter是自己实现的过滤器,具体写法可以参考tomcat6中webapps\examples\WEB-INF\classes\filters下SetCharacterEncodingFilter这个类。
觉得这样做有点麻烦,百度了一下,发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。
相关推荐
主要介绍了彻底解决Spring MVC中文乱码问题的方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
在 Spring MVC 中, jsp 文件中尽量不要有 Java 代码, 只有 HTML 代码和"迭代(forEach)"与"判断(if)"两个jstl标签. jsp 文件只作为渲染(或称为视图 View)模板使用. 好了, 我们开始吧. 首先我们需要一个放在 WEB-INF...
Spring MVC中默认的ResponseBody为String的乱码问题.pdfSpring MVC中默认的ResponseBody为String的乱码问题.pdf
Spring MVC整合IReport生成PDF及中文不显示、乱码解决
NULL 博文链接:https://lin-zy.iteye.com/blog/1679831
本篇文章主要介绍了Spring MVC3返回JSON数据中文乱码问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
spring mvc 过滤器,实现url过滤,权限模块经常用到的,很不错
主要介绍了Spring MVC参数传递中文乱码解决方法分享,具有一定借鉴价值,需要的朋友可以参考下。
该程序使用eclipse作为开发工具,mysql作为数据库。...dwz框架中的乱码问题不用太管,spring mvc自带的过滤器已经配置好了,网页发布到tomcat服务器后查看不会有乱码。 希望能帮到大家。也感谢给我帮助过的人。
spring mvc maven mysql 增删查改,简单demo,可用,不会出现乱码
在 Spring MVC 框架中,controller 间跳转重定向传参是一个非常常见的需求。这里,我们将讨论三种常见的情况:不带参数跳转、带参数拼接 URL 形式跳转、带参数不拼接参数跳转。 一、不带参数跳转 在某些情况下,...
Spring MVC教程 教程学习: 本教程完整地讲解了Spring MVC的每个知识点,包括独立运行的Demo示例,欢迎一起交流学习。Java学习交流群:239126529 教程软件版本说明: ...Spring MVC Post中文乱码 @RequestPara
《Spring MVC 复习笔记》博客附件。 博客地址:https://blog.csdn.net/Supreme_Sir/article/details/109349332
1,搭建SpringMVC 2,加载properties配置文件 3,集成mybatis ...7,解决@ResponseBody return String的中文乱码问题 8,配置静态资源映射ResourceHandlers 9,配置ViewControllers 10,配置filter 11,配置拦截器
主要介绍了SpringMVC post请求中文乱码问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
请简述如何解决中文文件名称下载时的乱码问题。 预习检查 SSM框架整合思路是什么? SSM框架整合需要哪些Jar包? 学习目标 掌握 了解 熟悉 SSM框架整合应用程序的编写 1 3 SSM框架的整合思路 2 SSM框架整合时的 配置...
使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码 async: { enable: true, url: basePath + '/...
本篇文章介绍了java 中spring mvc 解决乱码的问题方法实例,需要的朋友可以参考下
前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目...6) Spring mvc配置 7) 实例测试
一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE ...15.11 解决Spring的中文乱码问题 15.12 运行验证程序 15.13 小结