web 拦截器,过滤器,监听器

了解web容器启动过程:

Servlet规范定义了一套API标准,这一标准的实现通常称为servlet容器。

通常web项目启动,

1.容器(如tomcat)回去读他的配置文件web.xml。读两个节点:<listener/>和<context-param/>。

2.然后容器会创建一个ServletContext(作为全局上下文和spring容器的宿主环境)。当执行Servlet的init()方法,会触发

    ServletContextListener的contextInitialized方法。

3.容器会将<context-param></context-param>转化为键值对,交给servletContext。

4.容器会创建<listener></listener>类实例,该监听器必须实现ServletContextListener接口。

5.spring项目中配置的listener为ContextLoaderListener监听器。

    

    ContextLoaderListener实现了contextInitialized方法

    

    可以看到这里初始化根上下文(即spring Ioc容器)webApplicationContext。


总结:

1.监听器上面已经提到,Listener是servlet规范定义的特殊类,主要用于监听ServletContext,HttpSession,ServletRequest           等域对象创建和销毁的过程。很多项目listener实现用于项目初始化资源等。

2.项目启动 监听器-> 过滤器 -> 拦截器

3.过滤器和拦截器的区别:

    过滤器依赖于Servlet容器,而拦截器依赖框架容器(如spring)

    过滤器基于函数回调实现,拦截器基于java反射原理

    过滤器可以过滤任何请求,拦截器只能针对action请求

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

    拦截器可以获取ioc容器中的各个bean,过滤器不能。

    注:filter在容器tomcat容器启动加载,servlet是在请求是才创建。servlet.service()方法会调用filter进行过滤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值