发表于: 2020-02-17 13:08:19

1 983


今天完成的事情:

1 概述

Listener用于监听Servlet中的事件,例如context、request、session对象的创建、修改、删除,并触发响应事件。

Listener是 观察者模式 的实现,在Servlet中主要用于对context、request、session对象的生命周期进行监控。在Servlet 2.5规范中定义了8种Listener。

2 Servlet三大作用域

2.1 ServletContext (上下文对象)

(1)生命周期

创建:服务器启动时,为每个web项目创建一个上下文对象。

销毁:服务器关闭时,或者项目移除时。

(2)作用范围:

项目内共享,当前项目下所有程序都可以共享。

2.2 Request (请求对象)

(1)生命周期:

创建:请求开始的时候创建,每个请求都会对应自己的request对象。

销毁:请求结束,响应开始的时候。

(2)作用范围:

在一次请求中共享,只在当前请求中有效。

2.3 Session(会话对象)

(1)生命周期:

创建:在第一次调用request.getSession()方法时,web容器会检查是否已经有对应的session对象存在,如果没有就创建一个session对象。

销毁:

当一段时间内session没有被使用(默认30分钟),被销毁;

服务器非正常关闭(强行关闭)时销毁;

调用session.invalidate()手动销毁。

注意:服务器正常关闭,再启动,Session对象会进行 钝化 和 活化 操作。同时如果服务器钝化的时间在Session 默认销毁时间之内,则活化后Session还是会存在的,否则Session不存在。 如果JavaBean 数据在Session钝化时,没有实现Serializable ,则当Session活化时,会消失。

(2)作用范围:

在一次会话中(多次请求)共享数据。

2.4 范围大小

ServletContext > Session > Request





返回列表 返回列表
评论

    分享到