Servlet第九天

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)

猜你喜欢

转载自blog.csdn.net/anqing_liu/article/details/80636190