加载中...
加载中...
JAVA拦截器和过滤器的区别和使用

JAVA拦截器和过滤器的区别和使用 原创

一、什么是拦截器

拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者定义一个action前后执行的代码,也可以在一个action执行阻止其执行,同时也是提供了一种可以提取action可重用部分的方式。

实现原理:大部分是通过代理的方式来调用的。
自定义拦截器步骤:
自定义一个实现了Interceptor接口的类,或者继承抽象类AbstractInterceptor。
在配置文件中注册定义的拦截器。
在需要使用Action中引入定义的拦截器,为了方便也可以把拦截器定义为默认的拦截器。所有的Action都会被这个拦截器拦截
在AOP中用于在某个方法或字段被访问之前,进行拦截然后再之前货之后加入某些操作。拦截是AOP的一种实现策略。  

二、什么是过滤器

过滤器是一个程序,他先于与之相关的servlet或jsp也可以运行在服务器上。过滤器可附加到一个或多个servlet或jsp页面上,并且可以检查进入这些资源的请求信息。
以常规的方式调用资源
利用修改过的请求信息调用资源
调用资源,但在发送响应到客户机前对其进行修改
阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。
过滤器的基本原理:在Servlet作为过滤器使用时,他可以对客户的请求进行处理。处理完成后,他会交给下一个过滤器处理,这样,客户的请求在过滤器链中逐个处理,直到请求发送到目标为止。

三、拦截器与过滤器的区别

1 、拦截器是基于java的反射机制的,而过滤器是基于函数回调

2 、拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

3 、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

4 、拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

5 、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

四、JAVA拦截器的使用

五、JAVA过滤器的使用


没有更多推荐了 [去首页]
image
文章
376
原创
293
转载
83
翻译
0
访问量
183398
喜欢
73
粉丝
5
码龄
7年
资源
3

文章目录

加载中...
0
0