zoukankan      html  css  js  c++  java
  • servlet & filter & listener & interceptor

    web.xml 的加载顺序是:context- param -> listener -> filter -> servlet

    * Servlet

    对URL生效,用户处理用户的URL请求,流程是短的,处理完转到指定页面即结束;

    * Filter

    对URL生效,响应用户请求(Servlet、Action、HTML、JSP等处理前)前做过滤,线性结构,处理完后,请求交给下一个Filter或者Action处理;

    常用场景:字符编码、用户登陆的权限控制等;

    * Listener

    定义在web.xml中,用于对容器的相关事件做监听,如ContextLoaderListener,在Context加载完后触发;

    servlet2.4规范中提供了8个listener接口,可以将其分为三类,分别如下: 
    第一类:与servletContext有关的listner接口。包括:ServletContextListener、ServletContextAttributeListener 
    第二类:与HttpSession有关的Listner接口。包括:HttpSessionListner、HttpSessionAttributeListener、HttpSessionBindingListener、HttpSessionActivationListener; 
    第三类:与ServletRequest有关的Listener接口,包括:ServletRequestListner、ServletRequestAttributeListener

    * Interceptor

    定义在struts.xml中,不是针对URL做过滤,而是对Action请求做拦截处理;

    常用场景:事务管理,DB读写分离,分库管理;

    struts2中的过滤器和拦截器的区别与联系:

     (1)拦截器是基于java反射机制的,而过滤器是基于函数回调的。 
     (2)过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。 
     (3)拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。 
     (4)拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。 

    ----------------------------------------------------------------------------------------------------------

    1、servlet:

              2、filter:

               3、listener:

               4、interceptor:

  • 相关阅读:
    Google Protocol Buffers学习
    C学习笔记-一些知识
    前端相关
    Spark笔记-gz压缩存储到HDFS【转】
    maven笔记-将本地jar包打包进可执行jar中
    Spark运行时错误与解决
    机器学习笔记
    Spark笔记-DataSet,DataFrame
    云平台各层解释
    linux笔记-多服务器同时执行相同命令
  • 原文地址:https://www.cnblogs.com/shine_cn/p/4071578.html
Copyright © 2011-2022 走看看