RT
说的细点 最好说明什么时候用哪个 为什么不用另一个
说的细点 最好说明什么时候用哪个 为什么不用另一个
解决方案 »
- 如何更新项目中的memcashed?
- 这样的表格怎么生成
- luncene建立的索引如何与数据库保持同步?
- 在MyEclipse中运行工程时出现提示:create,manager,and run configuration,该如何解决?
- HttpURLConnection post 501
- Action[/newAccountAction] does not contain method named de
- 困扰很长时间的Tomcat数据库连接池问题,高分求救!
- xdoclet和ant ant执行时说找不到class not found怎么回事啊
- 关于用javadoc生成文档的问题
- 这个有关EJB的问题一直困扰我,请大家帮忙!
- Java调用cmd命令
- 服务器的最大用户访问数如何计算
具体的东西我懂 但是你用过滤器去掌握方向也可以我是问具体差距在哪 可以从性能上说 我发布一下本质区别1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。这是本质区别我问的问题是 什么时候用哪个 为什么不用另一个 有什么好处
比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),
或者在传入servlet或者 struts的action前统一设置字符集,
或者去除掉一些非法字符(聊天室经常用到的,一些骂人的话)拦截器 可通过的是符合条件的action。 拦截器本身是一个普通的Java对象,它能动态拦截Action调用,
Action执行前后执行拦截器本身提供的各种个样的Web项目需求。也可以阻止Action的执行,同时也可以提取
Action中可以复用的部分。
我觉得 不要用拦截器 因为一旦用了拦截器 你的代码就会依赖于拦截器或者是struts2这个框架,如果有大的改动不好处理但是我对 过滤器也不是很了解 所以用不用 LZ自己考虑吧
另外 可以自己写个方法 或者前端 直接控制
而过滤器,通常来讲是适用于所有访问的(包括servlet,或者是struts2的action),如果把过滤器配置在struts2的过滤器之前,你可以做到一些比如urlrewrite之类的功能。
过滤器到处都有
filter 责任链,无非就是方法调用
interceptor 动态代理,反射,动态编译...
filter过滤请求几乎不限制,包括js,jsp,css,图片之类的
当过滤器和拦截器同时存在的时候就分工拦截了,interceptor拦截action请求,其他的归filter过滤
所以当用到struts2框架要过滤url的时候两个就都要用了,汗
刚试验了一下,目前原因不明