集成tomcat版本:7
问题存在:在做条件分页查询时,发现点击页码后浏览器以get的请求方式去请求springmvc,在debug调式下,发现前端请求过来的参数是乱码的。
解决乱码主要有以下几种方式:
1.在页面设置UTF-8(JSP)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
2.在tomcat配置文件修改uriEncoding参数为UTF-8(Maven集成tomcat环境下的坐标)
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8888</port>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
<version>2.2</version>
</plugin>
</plugins>
3.在web.xml开启spring自带的过滤编码器
<filter>
<filter-name>characterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.若是数据存入数据库才乱码的在修改请求数据库url
jdbc:mysql://localhost:3306/email?useUnicode=true&characterEncoding=UTF-8
5.请求控制乱码前提tomcat的编码要修改为UTF-8
方式一
response.setCharacterEncoding("UTF-8");
方式二
String name= new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
6.数据库查出来没有乱码的,可是到了浏览器就乱了
response.setContentType("text/html;charset=utf-8");