日期:2014-05-20  浏览次数:20755 次

求助:关于servlet或struts2的自定义所有请求的过滤器/监听器问题
RT:目前系统采用servlet挂载struts2过滤器的方式处理所有请求,当前想实现一个“url伪静态化处理”的功能,把xxx.do后面那一大堆的?name=xxx?id=123改到.do前面去,暂时想到的是在servlet层上面挂载一个监听所有请求的监听器,可以把url转成正确的url再发送请求,但这个方法有个问题:servlet似乎没有针对每个请求的监听器,且servlet的监听器好像无法设置优先级。另外还想到在struts2这一层里面配置全部请求的过滤器,但这还是有问题:struts2的过滤器也是aop式的服务定制,在进入过滤器时其实请求的处理类已经决定了,也就是说,当我使用伪静态化处理后的url请求时进入到过滤器时,已经无法改变其处理类了,但我需要在过滤器内将其解析为真实的url,并决定其处理类。

问题:
1.servlet的监听器、过滤器有办法监听、过滤所有请求么?
2.struts2的过滤器是否是我理解的那样?
3.我的需求可以通过我上述的思路解决么?
4.如果可以通过上述思路解决,那些问题该如何解决?
5.如果监听器、过滤器不是解决“url伪静态化处理”需求的方法,那这个需求该如何满足?(不使用urlrewrite那个组件)
--------------------
谢谢大家耐心看完,表述可能不够清晰,有需要我后面再加以解释。



------解决方案--------------------
路过 up. 顶下。板凳。
------解决方案--------------------
urlrewrite可以帮你解决所有问题
------解决方案--------------------
探讨
5.如果监听器、过滤器不是解决“url伪静态化处理”需求的方法,那这个需求该如何满足?(不使用urlrewrite那个组件)

------解决方案--------------------
可以在配置文件中设置监听器的先回顺序。