日期:2014-05-18  浏览次数:20736 次

一个关于servlet过滤器的问题
我有两个过滤器!
一个是 /* 过滤所有,作用是字符编码过滤,编码格式参数为gb2312
 
一个dwr的 /dwr/* 


 我的第一个字符编码过滤器过滤了所有,结果把/dwr/*也过滤了,

导致 dwr 不能用了,

怎么样才能使,第一个字符编码过滤器在过滤的时候不过滤url为 /dwr/*的请求
···
 谢谢了

如果能通过其他方法解决也可以,反正能把问题解决就行!

------解决方案--------------------
dwr是Ajax框架,在地址栏里输入/dwr/*可以看见你所可以调用的方法,并且可以进行测试。我也是使用了过滤器,和dwr框架,但是没有你说的那种情况啊
------解决方案--------------------
在web.xml文件里调整一下过滤器的顺序。
------解决方案--------------------
没问题吧,dwr那个也得编码转换呀
------解决方案--------------------
这么简单也拿出来问,在编码过滤器里面加上一个ifg语句就行了嘛
String str=request.getServletPath(); 
if(str.indexOf("/dwr/")==1) 

chain.doFilter(request, response); 



------解决方案--------------------
用java的regex对/dwr/*进行正则匹配, 用match方法, 这样是完全匹配, 如果不匹配那么就是其他情况, 包含/*或是不包含, 你可以对这种情况再用regex的find方法,匹配/*的情况, 也就是先过滤掉/dwr/*的情况。