前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springmvc解决中文乱码问题

Springmvc解决中文乱码问题

作者头像
爱撒谎的男孩
发布2019-12-31 15:02:23
1.2K0
发布2019-12-31 15:02:23
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

文章目录

  1. 1. Springmvc解决中文乱码问题
    1. 1.1. POST
      1. 1.1.1. 注意
      2. 1.1.2. 在web.xml配置
    2. 1.2. GET
    3. 1.3. 总结

Springmvc解决中文乱码问题

POST

  • 在表单提交的时候,如果遇到中文乱码的情况,springmvc提供了一个CharacterEncodingFilter过滤器,我们只需要在web.xml文件中配置即可

注意

  1. 表单的提交方式必须是post
  2. web.xml中配置CharacterEncodingFilter编码格式要和JSP页面的编码格式一致
  3. 解决中文乱码必须使用过滤器(在DispatcherServlet之前执行),而不能使用springmvc的拦截器,因为过滤器在DispatcherServlet之前,所以设置好编码后,DispatcherServletController都可以获取到正确的数据,而拦截器运行在DispatcherServlet之后,也即是意味着DispatcherServlet获取的数据已经是乱码,那么在拦截器中调整乱码是没有意义的

web.xml配置

代码语言:javascript
复制
   <!-- 配置 CharacterEncodingFilter解决中文乱码问题-->
<filter>
	<filter-name>CharacterEncodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	
	<!-- 配置编码格式为UTF-8 -->
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
</filter>

<filter-mapping>
	<filter-name>CharacterEncodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

GET

  • 即使配置了中文乱码过滤器CharacterEncodingFilter,但是这个只会针对POST请求才会起作用,如果我们在使用GET请求的时候携带的参数有中文的话,那么服务器接收的时候就会产生中文乱码。
  • 我们在eclipse中修改Tomcatserver.xml文件中的内容参数即可,如下:
  • 我们只需要在<connector connectionTimeout="20000"......>在这个最后加上URIEncoding="UTF-8"即可

总结

  • 那么以后创建项目时候的完整的web.xml如下:
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">
	<display-name>Springmvc</display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>


	<!-- 配置前端控制器DispatcherServlet -->
	<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 配置springMVC配置文件的路径,这里如果想要使用默认的可以不用配置 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!-- classpath表示根路径,这里找的项目根路径下的applicationContext.xml -->
			<param-value>classpath:spring-*.xml</param-value>
		</init-param>
		<!-- 当tomcat启动的时候就加载,设置启动的优先级 -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<!-- 配置分发规则,这个是用来控制所有的请求,只要是请求后缀为.do的都会拦截分发 -->
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	
	<!-- 配置 CharacterEncodingFilter解决中文乱码问题-->
	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		
		<!-- 配置编码格式为UTF-8 -->
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
	
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Springmvc解决中文乱码问题
    • POST
      • 注意
      • 在web.xml配置
    • GET
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档