如果在eclipse中配置了tomcat后,其实,tomcat所用的所有tomcat配置文件,都不是catalina_home/config下面的xml文件,而是在eclipse所创建的Servers视图下的配置中,如图:

所 有,诸如修改在catalina_home下的config中的server.xml修改tomcat的编码此类的操作,如果在开发环境(eclipse 环境)下,那么则应该修改Servers下面的配置,因为每次从eclipse中启动tomcat的时候,eclipse会将该配置目录下的所有配置文件 复制到catalina_home/config 下。
- 今天用springMVC接收表单中文数据时总量乱码,按照网上的解决方案设置过滤器后,post的表单不乱码了,但get的表单还是会乱码。
解决get方法乱码的方案是修改tomcat的server.xml配置文件,修改<connector>如下,加入字符集编码:
- <Connector connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
过滤器的代码如下:
- <!-- Character Encoding filter -->
- <filter>
- <filter-name>encodingFilter</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>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- 以上这样可以解决几乎所有的总量(注意是“几乎”),一些get方法还是没办法解决,如
- <a href="test.jsp?key=中文" />
这里有个更好的解决办法就是配置tomcat的server.xml文件
- <Connector connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>