web项目,用了ShiroFilter以后,POST上来的中文乱码。
用的JFinal+JFinalShiroPlugin ,在一个html页面进行post提交JSON的时候,在服务端Request拿到的中文内容是乱码。html页面已经设置编码方式为UTF-8
如果把这个取消ShiroFilter的话,上传的内容正常,各位有没有遇到这个问题,请指导一下。
代码如下:如果url-pattern 拦截全部,用html页面post上来的内容就乱码。
如果ShiroFilter的url-pattern不拦截那个html页面post的url的话,上传的内容是正常,所以这里推断可能是ShiroFilter影响到的。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- shiro监听和拦截器 --> <listener> <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> </listener> <filter> <filter-name>ShiroFilter</filter-name> <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> </filter> <filter-mapping> <filter-name>ShiroFilter</filter-name> <url-pattern>/*</url-pattern> <!-- <url-pattern>/user/*</url-pattern> <url-pattern>/group/*</url-pattern> <url-pattern>/news/*</url-pattern> <url-pattern>/admin/*</url-pattern> <url-pattern>/log/*</url-pattern>--> </filter-mapping> <!-- JFinal拦截器 --> <filter> <filter-name>jfinal</filter-name> <filter-class>com.jfinal.core.JFinalFilter</filter-class> <init-param> <param-name>configClass</param-name> <param-value>com.xiangtian.plugin.WebConfig</param-value> </init-param> </filter> <filter-mapping> <filter-name>jfinal</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <session-config> <session-timeout>60</session-timeout> </session-config> </web-app>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
Shiro我个人觉得结构清晰,使用简单,还是不错的,以后会加大在Shiro上的投入。
沙比就认为自己开发一个就很牛,浪费公司财产
回复
适合自己的就是最好的,没必要因此骂人。就像maven和ant一样
总感觉Shiro有点重,不是针对web项目的,之前用了shiro,后来还是去掉了,自己开发了一个
有两个项目使用shiro,都没有出现编码问题(项目从前到后所有地方都是UTF8编码),不过没有采用ajax提交json,而是使用直接页面提交。shiro应该是没有问题,所以可能是某个环节的编码问题。
有两个项目使用shiro,都没有出现编码问题(项目从前到后所有地方都是UTF8编码),不过没有采用ajax提交json,而是使用直接页面提交。shiro应该是没有问题,所以可能是某个环节的编码问题。
总感觉Shiro有点重,不是针对web项目的,之前用了shiro,后来还是去掉了,自己开发了一个
post之前把你的url进行转码encodeURI(url)
post之前把你的url进行转码encodeURI(url)
post之前把你的url进行转码encodeURI(url)
post之前把你的url进行转码encodeURI(url)