Rom*_*man 5 java encoding tomcat
如果我需要为tomcat实例中部署的所有应用程序设置相同的编码,我可以编辑server.xml并添加如下所示的部分:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)
有没有办法为某个应用程序指定编码?(也许在它web.xml或其他地方)?
如果你使用Spring MVC,你可以在web.xml中使用CharacterEncodingFilter,如下所示:
<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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<servlet-name>my-spring-dispatcher-servlet</servlet-name>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
如果没有,您需要编写一个类似于以下内容的过滤器:
httpRequest.setCharacterEncoding("UTF-8")
Run Code Online (Sandbox Code Playgroud)
编辑:
您需要useBodyEncodingForURI="true"在Tomcat 5+中指定此过滤器才有效:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />
Run Code Online (Sandbox Code Playgroud)
据我所知 web.xml 不允许你想要的,所以我建议采用以下方法。
<%@page pageEncoding="UTF-8" %>)| 归档时间: |
|
| 查看次数: |
5536 次 |
| 最近记录: |