首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CharacterEncodingFilter 失效[通俗易懂]

CharacterEncodingFilter 失效[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-14 08:11:59
发布于 2022-09-14 08:11:59
1.4K0
举报

大家好,又见面了,我是你们的朋友全栈君。

<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里

原因自然清晰了。http://blog.csdn.net/untager/article/details/6334163

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158264.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档