JavaWEB 通过Listener理解域对象生命周期
发布日期:2021-07-12 08:49:25 浏览次数:4 分类:技术文章

本文共 2144 字,大约阅读时间需要 7 分钟。

利用 ServletRequestListener、HttpSessionListener 以及 ServletContextListener 可以把request,session,以及Application的生命周期进一步的做一了解

 

> request:是一个请求,当一个响应返回时,即被销毁.当发送一个请求时被创建.注意:请求转发的过程是 一个 request 对象。

注:在页面上放的 属性 ,在servlet中时获取不到的,因为页面响应后request已经销毁了。

注:重定向是两个请求。

> session : 当第一次访问WEB 应用的一个 JSP 或 Servlet 时,且该 JSP 或 Servlet 中 还需要创建一个 session 对象。

   session 销毁:session 过期,直接调用 session的 invilidate 方法,当前WEB 应用被卸载(session 可以被持久化)

  *关闭浏览器,并不意味着session 被销毁,还可以通过 sessionid找到服务器中的 session 对象

> application : 贯穿于当前的 WEB 应用的生命周期。当前 WEB 应用被加载时 创建 application 对象,当前 WEB 应用被

  卸载时销毁 application 对象.

 

ServletContextListener

1). what: 监听 ServletContext 对象被创建或销毁的 Servlet 监听器

2). how:

  > 创建一个实现了 ServletContextListener 的类,并且实现其中的两个方法

  public class HelloServletContextListener implements ServletContextListener

  > 在 web.xml 文件中 配置Listener

  <listener>

    <listener-class>com.java.javaweb.test.HelloServletContextListener</listener-class>

  </listener>

3). why: ServletContextListener 是最常用的Listener,可以在当前 WEB 应用被加载时对当前 WEB 应用的相关资源进行初始化操作:

  创建数据库连接池,创建Spring 的 IOC 容器,读取当前 WEB 应用的初始化参数 ...

4). API:  

 

Method Summary
void ( sce)
Notification that the servlet context is about to be shut down.
void ( sce)
Notification that the web application initialization process is starting.

 

JavaWEB 中其他的Servlet监听器

HttpSessionActivationListener

1).监听实现了该接口 和 Serializable 接口的 Java 类的对象随session钝化和活化事件

  >活化:从餐盘中读取session 对象

  >钝化:向磁盘中写入session对象

  >session 对象存储在tomcat 服务器的 work\Catalina\localhost\contextPath 目录下.SESSION.SER

2).注意:该监听器不需要再web.xml文件中进行配置.

3).

//在活化之后被调用.

public void sessionDidActivate(HttpSessionEvent se)

//在钝化之前被调用

public void sessionWillPassivate(HttpSessionEvent se)

HttpSessionEvent:getSession()

4).该监听器很少被使用.

-----------------------------------------------------------------------

HttpSessionBindingListener

1).监听实现了该接口的Java类的对象被绑定到 session 或从 session 中解除绑定的事件.

//当前对象被绑定到 session 时调用该方法

public void valueBound(HttpSessionBindingEvent event)

//当前对象从session中解除时调用该方法

public void valueUnbound(HttpSessionBindingEvent event)

2).注意:该监听器不需要再web.xml文件中进行配置.

3).HttpSessionBindingEvent:

getName(),getValue(),getSession()

 

转载于:https://www.cnblogs.com/wq3435/p/5366018.html

转载地址:https://blog.csdn.net/ankan7400/article/details/102088951 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:hadoop-hdfs分布式文件系统
下一篇:文件上传

发表评论

最新留言

不错!
[***.144.177.141]2024年04月10日 23时10分10秒