拦截器、过滤器、监听器各有什么作用
这里是修真院后端小课堂,每篇分享文从
【 拦截器、过滤器、监听器各有什么作用】
大家好,我是IT修真院西安分院第4期的JAVA学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,拦截器、过滤器、监听器各有什么作用
一、.背景介绍
1、拦截器
Interceptor是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个Action执行
的前后执行的代码,也可以在一个Action执行前阻止其执行 。同时也提供了一种可以提取Action中可重用
的部分的方式。
2、过滤器
Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码,做一些业务逻辑
判断,过滤器随web应用启动而启动,只初始化一次,只有当web应用停止或重新部署才销毁
3、 监听器
Listener是实现了javax.servlet.ServletContextListener接口的服务器端程序,
它也是随web应用的启动而启动,只初始化了一次,随web应用的停止而销毁。
主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者
是一些固定的对象等等。
二、知识剖析
2.知识剖析
拦截器的实现方法:
主要通过两种途径,第一种是实现HandlerInterceptor接口,第二种是实现WebRequestInterceptor接口。</P>
拦截器的使用
项目中使用:编写实现接口的类+springMVC.xml中配拦截器只需要实现HandlerInterceptor或者WebRequestInterceptor, 重写相应的preHandle(...)、postHandle(...)和afterCompletion(...)方法即可</p>
(1)HandlerInterceptor 接口
在该接口中,定义了 3 个方法,分别为preHandle()、postHandle()和afterCompletion(),通过复写这 3 个方法来对用户的请求进行拦截处理
而且在 Spring 框架中,还提供了另外一个接口和一个抽象类,实现了对HandlerInterceptor接口的功能扩展,分别为:AsyncHandlerInterceptor和HandlerInterceptorAdapter.
在实际应用中,一般都是通过实现HandlerInterceptor接口或者继承HandlerInterceptorAdapter抽象类
1&#x