Java 如何为某个web应用程序配置URI编码?
如果我需要为部署在tomcat实例中的所有应用程序设置相同的编码,我可以编辑Java 如何为某个web应用程序配置URI编码?,java,tomcat,encoding,Java,Tomcat,Encoding,如果我需要为部署在tomcat实例中的所有应用程序设置相同的编码,我可以编辑server.xml并添加如下部分: <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <filter> <filter-name>encodingFilter</filte
server.xml
并添加如下部分:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
<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>
有没有办法为某个应用程序指定编码?(可能在它的
web.xml
或其他地方)?据我所知,web.xml不允许您想要的,所以我建议以下方法
)如果使用Spring MVC,则可以在web.xml中使用CharacterEncodingFilter,如下所示:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
<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>
编辑:
您确实需要在Tomcat5+中指定useBodyEncodingForURI=“true”
,此筛选器才能生效:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />