您的位置:首页 > 编程语言 > Java开发

Spring get/post 中文乱码

2011-04-19 17:57 225 查看
<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>/web/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

该方式为什么对POST而对GET无效呢?

不妨看看CharacterEncodingFilter内的实现 doFilterInternal

该方法调用

request.setCharacterEncoding(this.encoding);

而该方法的说明

Overrides the name of the character encoding used in the body
of this
request. This method must be called prior to reading request parameters or
reading input using getReader().

注意到没,只对body起作用。

而get方式的请求参数在hearder里

post方式的请求参数在body里

原因自然清晰了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: