当你干一件事的时候它就知道了
可以监听四个范围对象中的后三个: request —— ServletRequestListener session —— HttpSessionListener application —— ServletContextListener
1⃣️实现监听器的接口 public class Listener implements ServletRequestListener ,HttpSessionListener, ServletContextListener{...} 监听那个就implements哪个,这里都要用就都写上
每个监听器各自提供了两个方法:监听开始和监听结束
2⃣️配置监听器 只需要在web.xml中写位置在哪里就可以
3⃣️监听对象的创建顺序 看个? 这个java文件中实现了三个监听器,每个都有initialize和destroyed,用来启用监听和停止监听 在这个session.jsp中创建个超链接到sessionIncadidate.jsp sessionIncalidate.jsp用来销毁session 启动服务器: 可以从中间那一行黑字看到ServletContextListener在初始时自动创建 接着在浏览器中访问session(输入网址然后回车的这个过程): 之后出现了: 可以看到创建了request,创建了session又销毁了request 其中的过程可以看下图 访问session时,相当于客户端发送了一个请求到服务器端,这时创建了一个request,服务器自动为request创建一个session,请求结束后服务器自动销毁request,于是就有了上面我们看到的三行 接下来我们再次点击“使session失效”的超链接 可以看到在刚刚三行的基础上,多了四行 内部发生了这些事情: 1.超链接相当于另一个请求,创建request 2. sessionIncalidate.jsp中的session.invalidate()手动销毁了session 3. 请求结束销毁了request
最后再停止服务器,application也被销毁
request ----——— ServletRequestAttributeListener session ——----—— HttpSessionAttributeListener application———— ServletContextAttributeListener
(在原来的基础上中间都加了一个Attribute) 每一个域对象监听都有三个函数:增加、替换、删除