spring字符编码器为什么没起到作用啊?

时间:2023-01-10 22:04:11
本人是小小学生一枚,刚开始做了个整合SS2H的小信息系统,为什么下面的这个过滤器明明写了,在strust2的Action中获取的request里从页面传来的中文参数还需要我自己重新编码才不是乱码呢?这样的话下面这个过滤器的作用何在呢?这个过滤器我是放在StrutsPrepareAndExecuteFilter之前之后都没什么变化,我很纳闷啊,请各位大神指教啊,小辈才疏学浅,洗耳恭听。
<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>
<url-pattern>/*</url-pattern>
</filter-mapping> 
自己重新编码:
        keti=new String(keti.getBytes("iso-8859-1"),"UTF-8");
        ketiname=new String(ketiname.getBytes("iso-8859-1"),"UTF-8");

7 个解决方案

#1


filter里加上
<init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>

这个过滤器写在web.xml的最上面

#2


你的过滤没生效吧

#3


可以考虑用struts2中的编码设置,不过注意该编码设置只对post请求有效,对get请求是没用的哦。


你用那个spring提供的fiter,也要考虑下你的请求是否是post请求还是get请求,注意下吧..

#4


使用过滤器注意几点 1.确认是先走的字符集 filter还是 struts的Filter 顺序别乱
2.post请求使用过滤器是没有问题的,
3.get请求有没有问题我没测试过,但是可以设置中间件的编码方式

#5


还有一个是 使用正文提交(非在url ?XXX=XX&XX=XX) 但是用get提交方式 这个有点乱了。

#6





引用 3 楼 zjlolife 的回复:
可以考虑用struts2中的编码设置,不过注意该编码设置只对post请求有效,对get请求是没用的哦。


你用那个spring提供的fiter,也要考虑下你的请求是否是post请求还是get请求,注意下吧..

多谢,问题解决了,确实是提交方式必须是POST,又学到了点东西。 spring字符编码器为什么没起到作用啊?

#7


谢谢各位前辈,小弟问题解决了!

#1


filter里加上
<init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>

这个过滤器写在web.xml的最上面

#2


你的过滤没生效吧

#3


可以考虑用struts2中的编码设置,不过注意该编码设置只对post请求有效,对get请求是没用的哦。


你用那个spring提供的fiter,也要考虑下你的请求是否是post请求还是get请求,注意下吧..

#4


使用过滤器注意几点 1.确认是先走的字符集 filter还是 struts的Filter 顺序别乱
2.post请求使用过滤器是没有问题的,
3.get请求有没有问题我没测试过,但是可以设置中间件的编码方式

#5


还有一个是 使用正文提交(非在url ?XXX=XX&XX=XX) 但是用get提交方式 这个有点乱了。

#6





引用 3 楼 zjlolife 的回复:
可以考虑用struts2中的编码设置,不过注意该编码设置只对post请求有效,对get请求是没用的哦。


你用那个spring提供的fiter,也要考虑下你的请求是否是post请求还是get请求,注意下吧..

多谢,问题解决了,确实是提交方式必须是POST,又学到了点东西。 spring字符编码器为什么没起到作用啊?

#7


谢谢各位前辈,小弟问题解决了!