美文网首页
过滤器、监听器、拦截器的区别

过滤器、监听器、拦截器的区别

作者: 抬头挺胸才算活着 | 来源:发表于2022-01-10 23:05 被阅读0次

    总结

    过滤器:是web服务器的,可以拦截任何资源。
    监听器:是web服务器的,监听特定事件。
    拦截器:是SpringMVC的,不会拦截静态资源,只会拦截访问的控制器方法handler,拦截的时机是handler运行前、运行完了但未跳转页面之前、跳转页面之后。


    具体

    • Servlet
      处理Request请求和Response响应
      过滤器(Filter):对Request请求起到过滤的作⽤,作⽤在Servlet之前,如果配置为/*可以对所
      有的资源访问(servlet、js/css静态资源等)进⾏过滤处理

    • 监听器(Listener)
      实现了javax.servlet.ServletContextListener 接⼝的服务器端组件,它随Web应⽤的启动⽽启动,只初始化⼀次,然后会⼀直运⾏监视,随Web应⽤的停⽌⽽销毁
      作⽤⼀:做⼀些初始化⼯作,web应⽤中spring容器启动ContextLoaderListener
      作⽤⼆:监听web中的特定事件,⽐如HttpSession,ServletRequest的创建和销毁;变量的创建、销毁和修改等。可以在某些动作前后增加处理,实现监控,⽐如统计在线⼈数,利⽤HttpSessionLisener等。
      拦截器(Interceptor):是SpringMVC、Struts等表现层框架⾃⼰的,不会拦截sp/html/css/image的访问等,只会拦截访问的控制器⽅法(Handler)。
      从配置的⻆度也能够总结发现:serlvet、filter、listener是配置在web.xml中的,⽽interceptor是
      配置在表现层框架⾃⼰的配置⽂件中的
      在Handler业务逻辑执⾏之前拦截⼀次
      在Handler逻辑执⾏完毕但未跳转⻚⾯之前拦截⼀次
      在跳转⻚⾯之后拦截⼀次

    • 多个拦截器运行顺序


    相关文章

      网友评论

          本文标题:过滤器、监听器、拦截器的区别

          本文链接:https://www.haomeiwen.com/subject/fuivcrtx.html