Java Web高级特性之(四)过滤器、监听器、拦截器的区别

原创 2015年04月25日 15:17:32

过滤器是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符

拦截器是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。例如Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.

监听器:Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。 主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。


区别:

1、拦截器是基于java的反射机制的,而过滤器是基于函数回调 
2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器 
3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用 
4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能 
5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次 


执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后。
个人认为过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);
过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;
Action处理完成返回后,拦截器还可以做其他过程,再向上返回到过滤器的后续操作。


JavaWeb中监听器+过滤器+拦截器区别、配置和实际应用

JavaWeb中监听器+过滤器+拦截器区别、配置和实际应用 1.前沿上一篇文章提到在web.xml中各个元素的执行顺序是这样的,context-param-->listener-->filter--...
  • Jintao_Ma
  • Jintao_Ma
  • 2016年10月30日 19:51
  • 4269

java web中过滤器、拦截器和监听器的区别

1.过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可...
  • I_Am_Zou
  • I_Am_Zou
  • 2016年09月07日 15:24
  • 1885

java拦截器,过滤器,监听器的区别和执行顺序

一:拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,springmvc的aop中的前置通知和后置通知。 二...
  • qq_25497867
  • qq_25497867
  • 2016年12月06日 08:26
  • 4270

java web 过滤器跟拦截器的区别和使用

今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深...
  • gh670011677
  • gh670011677
  • 2017年07月13日 16:50
  • 221

java web 过滤器跟拦截器的区别和使用

java web 过滤器和拦截器的区别和使用 1、首先要明确什么是拦截器、什么是过滤器    1.1 什么是拦截器:      拦截器,在AOP(Aspect-Oriented Progra...
  • ccecwg
  • ccecwg
  • 2015年01月12日 17:29
  • 291

Java Web 中 过滤器与拦截器的区别

说明: 过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤...
  • FireAny2010
  • FireAny2010
  • 2013年12月25日 18:27
  • 519

Java Web高级特性之(三)拦截器

拦截器在在流行的开源框架中很常见,依赖的技术就是Java的动态代理。 用在面向切面编程,动态代理就是拦截器的简单实现。 AOP(Aspect Oriented Programming)...
  • gangannini
  • gangannini
  • 2015年04月25日 14:58
  • 442

java web 过滤器跟拦截器的区别和使用

1、首先要明确什么是拦截器、什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然...
  • maoyuanzhi68
  • maoyuanzhi68
  • 2015年04月21日 16:57
  • 481

java web 过滤器跟拦截器的区别和使用

1、首先要明确什么是拦截器、什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在...
  • qq_36286452
  • qq_36286452
  • 2017年04月13日 09:16
  • 164

java web 过滤器跟拦截器的区别和使用

1、首先要明确什么是拦截器、什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然...
  • qq_25843323
  • qq_25843323
  • 2015年12月07日 22:15
  • 245
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java Web高级特性之(四)过滤器、监听器、拦截器的区别
举报原因:
原因补充:

(最多只允许输入30个字)