2. Servlet上下文
(1)什么是Servlet上下文?
容器启动之后,会为每一个web应用创建唯一的一个符合ServletContext接口要求的对象,该对象一般我们称之为
servlet上下文。
注:
唯一性:一个web应用对应一个上下文。
持久性:只要容器不关闭,应用没有被卸载,那么上下文就会
一直存在。
(2)如何获得Servlet上下文?
GenericServlet提供了getServletContext()方法来获得上下文。
(3)作用
1)绑订数据
setAttribute
getAttribute
removeAttribute
注:
request,session,servlet上下文都提供了绑订数据相关的方法,如何选取?
a. 这三个对象,生存时间长度依次为request < session < servlet上下文,在满足使用条件的情况下,尽量优先使用生命
周期短的。
2)读取全局的初始化参数
a.什么是全局的初始化参数?
可以被同一个应用中的所有组件共享的初始化参数。
b.如何使用?
step1.配置
<!-- 配置全局的初始化参数 -->
<context-param>
<param-name>company</param-name>
<param-value>IBM</param-value>
</context-param>
step2.读取
ServletContext.getInitParameter(String paramName);
1.过滤器
(1)什么是过滤器?
Servlet规范当中定义的一种特殊的组件,用来拦截servlet容器的调用过程。
注:
容器收到请求之后,会先调用过滤器,再调用后续的其它组件。
(2)如何写一个过滤器?
step1.写一个java类,实现Filter接口。
step2.在接口方法当中,实现拦截处理逻辑。
step3.配置过滤器(web.xml)。
(3)过滤器优先级
当有多个过滤器都符合拦截的要求,则依据配置的先后顺序来执行。
(4)初始化参数
step1.配置初始化参数
step2.调用FilterConfig的getInitParameter方法读取初始化参数。
2.监听器
(1)什么是监听器?
servlet规范当中定义的一种特殊的组件,用于监听servlet容器产生的事件并进行相应的处理。
注:
容器会产生两大类事件:
1)第一大类:生命周期相关的事件。
容器创建或者销毁了request,session,servlet上下文时产生的事件。
2)第二大类:绑订数据相关的事件。
调用了request,session,servlet上下文的setAttribute和removeAttribute方法时产生的事件。
(2)如何写一个监听器?
step1.写一个java类,依据监听的事件类型,选择实现对应的监听器接口。
注:
比如,要监听session创建和销毁对应的事件,需要实现
HttpSessionListener接口。
step2.在接口方法当中,实现监听处理逻辑。
step3.配置监听器。(web.xml)