java监听器与适配器,JavaWeb中的监听器、过滤器、拦截器、适配器简述

概念

context-param:

就是一些需要初始化的配置,放入context-param中,

从而被监听器(这里特指org.springframework.web.context.ContextLoaderListener)监听,然后加载;

监听器(listener):

就是对项目起到监听的作用,它能感知到包括request(请求域),session(会话域)和applicaiton(应用程序)的初始化和属性的变化,

活动在整个request和response周期中;

Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。

下面将介绍几种常用的监听器

分类及介绍:

ServletContextListener:

用于监听WEB 应用启动和销毁的事件,监听器类需要实现javax.servlet.ServletContextListener 接口。

ServletContextAttributeListener:

用于监听WEB应用属性改变的事件,包括:增加属性、删除属性、修改属性, 监听器类需要实现javax.servlet.ServletContextAttributeListener接口。

HttpSessionListener:

用于监听Session对象的创建和销毁,监听器类需要实现javax.servlet.http.HttpSessionListener接口 或者javax.servlet.http.HttpSessionActivationListener接口,或者两个都实现。

HttpSessionActivationListener:

用于监听Session对象的钝化/活化事件,监听器类需要实现javax.servlet.http.HttpSessionListener接口 或者javax.servlet.http.HttpSessionActivationListener接口,或者两个都实现。(没用过)

HttpSessionAttributeListener:

用于监听Session对象属性的改变事件,监听器类需要实现javax.servlet.http.HttpSessionAttributeListener接口。 (没用过)

过滤器(filter):

Servlet过滤器是在java servlet规范2.3中定义的,他能够对servlet容器的请求和响应对象进行检查和修改。

过滤器是JavaEE标准,采用函数回调的方式进行。

Servlet过滤器本身并不产生请求和响应对象,他只能提供过滤作用,servlet过滤能够在servlet被调用之前检查request对象,

修改request的header和request内容,在调用后检查response对象,修改response的头和内容。

Servlet过滤负责过滤的web组件可以是servlet,jsp或html文件。

就是对请求起到过滤的作用,作用在servlet之前,对请求进行过滤;

特点:

过滤器可以检查和修改request和response对象

过滤器可以被指定url,当访问到该url时才会触发过滤

过滤器可以有很多个,串联使用,形成过滤器链。

servlet:

就是对request和response进行处理的容器,它在filter之后执行,servlet其中的一部分就是controller层,

还包括渲染视图层和进入controller之前系统的一些处理部分

拦截器(interceptor):

就是对请求和响应进行拦截,它作用在servlet的内部,具体来说有三个地方:

控制层执行之前

控制层执行之后视图层渲染之前

视图层渲染之后servlet结束之前

HandlerInterceptor

其中preHandle、postHandle、afterComplication三个方法执行顺序:preHandle——handler——postHandle——view渲染——afterComplication

总结

context-param-->listener-->filter-->servlet-->interceptor(listener贯穿servlet)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值