您的位置:首页 > 编程语言 > Java开发

java 过滤器 拦截器 监听器

2017-12-14 15:15 197 查看
过滤器:Filter

实现javax.servlet.Filter接口.基于函数回调,依赖servlet容器。可以对几乎所有的请求起作用。

在web.xml文件配置,随web应用启动而启动,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁

用于过滤字符编码,业务逻辑判断.判断登录,权限等.

拦截器: interceptor

面向切面编程应用的,基于java反射机制.配置在使用的框架的配置文件中.

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

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

执行顺序:过滤前 - 拦截前 - Action处理 - 拦截后 -过滤后个人认为过滤是一个横向的过程.

首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);

过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;

Action处理完成返回后,拦截器还可以做其他过程,再向上返回到过滤器的后续操作。

监听器:Listener

实现javax.servlet.ServletContextListener接口.监听这个servlet容器.

就是监听application,request,response.这3个对象的创建,销毁,和它们的属性发生的变化.

用于做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等

在web.xml文件配置,随web应用启动而启动,只初始化一次,随web应用的停止而销毁.

把整个项目的流程比作一条河,那么监听器的作用就是能够听到河流里的所有声音,

过滤器就是能够过滤出其中的鱼,而拦截器则是拦截其中的部分鱼,并且作标记。

所以当需要监听到项目中的一些信息,并且不需要对流程做更改时,用监听器;

当需要过滤掉其中的部分信息,只留一部分时,就用过滤器;当需要对其流程进行更改,做相关的记录时用拦截器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: