其实除了自己写Filter接口的实现类外,最简单粗暴的办法就是让框架给我们解决乱码。
用springMVC的过滤器就好了
在web.xml里面配置如下,列举网上的几种代码,
**
(重要的话说在前面,web.xml配置只能解决post请求,加粗显示)
**
<filter>
<filter-name>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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
还有
<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>
等一些书写方式,放在工程里都可以用,
如果要解决get请求的乱码问题,可以修改tomcat的server.xml
<Connector port="8008" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
另外一个解决get请求乱码的方法,配置自己写过滤字符编码,在拿到参数的Controller里面直接改
//destinations 是我自己定义的参数,其他的都是固定格式,据说这种方法挺耗费资源的,具体就 不知道了
destinations = new String(destination.getBytes("iso-8859-1"), "utf-8");