Javaweb之Listener学习

监听器:主要用来监听特定对象的创建或销毁,属性的变化

监听器是一个实现特定接口的普通Java类

监听的对象必须要对程序的实现或数据的保存有帮助

监听器在访问其监听的对象的时候由服务器创建 访问结束后由服务器销毁

某一类监听器配置以后, 该监听器对该类对象都会进行监听

对象的创建方式:

对象的创建原则:谁创建,谁销毁

1.自己创建 自己使用     不需要监听

2.别人创建  自己用        需要监听

监听器可以从属性上分为三类

一、生命周期监听器

监听对象的创建、销毁的过程

二、属性监听器

监听对象属性的添加、修改、移除的过程

三、行为监听器

监听对象事件的绑定或者序列化

面向接口编程:不需要关注接口的具体实现,只需要关注接口具有哪些功能可以使用。

Servlet中那些对象需要监听?

域对象

request           request监听器                                     监听request对象的创建和销毁

session              session相关监听器            监听session对象的创建和销毁

servletContext      servletContext监听器        监听servletContex对象的创建和销毁

application          application监听器        监听application对象的创建和销毁

监听器的接口:监听对象创建或销毁的监听接口

1.ServletRequestListener 监听request对象的创建或销毁

监听器中的方法

void requestDestroyed(ServletRequestEvent sre)

The request is about to go out of scope of the web application.

void requestInitialized(ServletRequestEvent sre)

The request is about to come into scope of the web application.

2.    session相关监听器    监听session对象的创建或销毁

HttpSessionListener

void sessionCreated(HttpSessionEvent se)

Notification that a session was created.

void sessionDestroyed(HttpSessionEvent se)

Notification that a session is about to be invalidated.

session相关监听器

2.1HttpSessionBindingListener  监听绑定在session上的事件

void valueBound(HttpSessionBindingEvent event)

Notifies the object that it is being bound to a session and identifies the session.

void valueUnbound(HttpSessionBindingEvent event)

Notifies the object that it is being unbound from a session and identifies the session.

2.2HttpSessionActivationListener 监听session的序列化及反序列化的监听器

void sessionDidActivate(HttpSessionEvent se)

Notification that the session has just been activated.

void sessionWillPassivate(HttpSessionEvent se)

Notification that the session is about to be passivated.

3.ServletContextListener  监听servletContex对象的创建或销毁

void contextDestroyed(ServletContextEvent sce)

Notification that the servlet context is about to be shut down.

void contextInitialized(ServletContextEvent sce)

Notification that the web application initialization process is starting.

监听对象属性变化的监听器接口

1.ServletRequestAttributeListener  监听request对象属性变化(添加、移除、修改)的监听器

void attributeAdded(ServletRequestAttributeEvent srae)

Notification that a new attribute was added to the servlet request.

void attributeRemoved(ServletRequestAttributeEvent srae)

Notification that an existing attribute has been removed from the servlet request.

void attributeReplaced(ServletRequestAttributeEvent srae)

Notification that an attribute was replaced on the servlet request.

2.HttpSessionAttributeListener  监听session对象属性变化(添加、移除、修改)的监听器

void attributeAdded(HttpSessionBindingEvent se)

Notification that an attribute has been added to a session.

void attributeRemoved(HttpSessionBindingEvent se)

Notification that an attribute has been removed from a session.

void attributeReplaced(HttpSessionBindingEvent se)

Notification that an attribute has been replaced in a session.

3.ServletContextAttributeListener  监听servletContext对象的创建或销毁

void attributeAdded(ServletContextAttributeEvent scab)

Notification that a new attribute was added to the servlet context.

void attributeRemoved(ServletContextAttributeEvent scab)

Notification that an existing attribute has been removed from the servlet context.

void attributeReplaced(ServletContextAttributeEvent scab)

Notification that an attribute on the servlet context has been replaced.

监听器的开发步骤:

1.写一个普通Java类,实现相关的接口

2.在web.xml(部署描述文件)配置中配置监听器

<!-- 监听request对象的创建、销毁 -->

<listener>

<listener-class>cn.test.lister.ListenerDemo</listener-class>

</listener>

package cn.test.lister;

/***

* 监听request对象的创建或者销毁

* @author ning

*

*/

import javax.servlet.ServletRequestEvent;

import javax.servlet.ServletRequestListener;

public class ListenerDemo implements ServletRequestListener{

/**

* 对象销毁

*

*/

@Override

public void requestDestroyed(ServletRequestEvent sre) {

// TODO Auto-generated method stub

//在销毁之前可以获取request中的属性值

System.out.println("ListenerDemo is requestDestroyed");

}

/**

* 对象创建

*

*/

@Override

public void requestInitialized(ServletRequestEvent sre) {

// TODO Auto-generated method stub

System.out.println("ListenerDemo is requestInitialized");

}

}

时间: 2024-10-19 20:35:03

Javaweb之Listener学习的相关文章

Java Web学习(39):Listener学习(三)

Servlet3.0下监听器的使用 使用Servlet 3.0的前提条件 1)使用Servlet 3.0新标准jar包 2)JDK必须是1.6以上版本 3)编译器的编译级别为6.0 4)在web.xml文件中,使用3.0规范 5)使用支持Servlet 3.0特性的Web容器,比如Tomcat7 Servlet3.0下监听器的用法 @WebListener 该注解用于将类声明为监听器,被@WebListener标注的类必须实现以下至少一个接口: ServletContextListener Se

javaweb学习总结(四十五)——监听器(Listener)学习二

一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换

javaweb学习总结(四十四)——监听器(Listener)学习

一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行. 1.2.监听器案例——监听window窗口的事件监听器 1 package me.gacl.listener.demo; 2 3 import java.awt.Fram

深入分析JavaWeb Item39 -- 监听器(Listener)学习进阶

一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口各自是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的添加,删除和替换

javaWeb学习总结(11)- 监听器(Listener)学习(2)

一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换

javaWeb学习总结(11)- 监听器(Listener)学习

一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其 实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法 立即被执行. 1.2.监听器案例——监听window窗口的事件监听器 package me.gacl.listener.demo; import java.awt.Frame; i

JAVAWEB的Listener

学习监听器 1监听器是什么 :监听对象的变化或者监听事件的触发 2有什么作用:当被监听的对象状态改变时,触发对应的方法 3怎么用: ①声明监听器,(继承对应的监听器) ②重写监听方法,并实现自己需要的功能 ③注册监听器JavaWeb的监听器 1运行原理 ①自定义监听器,并实现对应的监听器(ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener) ②实现了对应的监听

JavaWeb:Listener

1.ServletContextListener: 1).what:监听 ServletContext  对象被创建或销毁的 Servlet 监听器. 2).how:  >创建一个实现了 ServletContextListener 的类,并且实现其中的两个方法 public class HelloServletContextListner implements ServletContextListener >在 web.xml 文件中配置 Listener <listener>

JavaWEB 通过Listener理解域对象生命周期

利用 ServletRequestListener.HttpSessionListener 以及 ServletContextListener 可以把request,session,以及Application的生命周期进一步的做一了解 > request:是一个请求,当一个响应返回时,即被销毁.当发送一个请求时被创建.注意:请求转发的过程是 一个 request 对象. 注:在页面上放的 属性 ,在servlet中时获取不到的,因为页面响应后request已经销毁了. 注:重定向是两个请求. >