监听器

八种web监听器详解

a)Web中有三个事件源,分别是ServletContext->HttpSession->ServletRequest

要在web.xml中进行事件源注册事件监听器

b)ServletContext对象        Context对象    实现的接口是没有适配器的     在初始化工作中使用的非常多

>>创建和销毁:ServletContextListener,Web容器部署时产生,Web容器重新部署时销毁原ServletContext对象

>>属性变化:ServletContextAttributeListner

application.setAttirbute("name","jack")

setAttribute("name","杰克")

removeAttribute("name")

c)ServletRequest对象        请求对象

>>创建和销毁:ServletRequestListener,     每次请求产生,响应完毕后销毁,产生和消亡的频率非常快

>>属性变化:ServletRequestAttributeListner

request.setAttirbute("name","jack")

setAttribute("name","杰克")

removeAttribute("name")

d)HttpSession对象        会话对象

>>创建和销毁:HttpSessionListener,当Web容器创建HttpSession对象中产生,当Web容器销毁HttpSession对象执行对应的销毁方法

也就是说访问页面的时候就创建,默认30分钟后就消亡

>>属性变化:HttpSessionAttributeListner

session.setAttirbute("name","jack")

setAttribute("name","杰克")

removeAttribute("name")

对属性的监听

e)HttpSessionBindListener监听器,专用于监听JavaBean对象在HttpSession中的状态情况

但凡是监听三个域对象,就需要在web.xml文件中配置,除外,无需要web.xml文件配置

当HttpSession不用时,但用在HttpSession的有效期中,这时将内存中的HttpSessio移到外存,叫钝化。

反之,将HttpSession由外存移到内存,叫激活。

f)HttpSessionActivationListener监听器,专用于监听JavaBean对象的钝化与激活

监听器的工作过程和生命周期

开发过程:

a)写一个普通类实现对应的接口,即事件监听器

b)在web.xml文件中注册事件监听器

<!-- 事件源注册事件监听器,由容器完成 -->

<listener>

<listener-class>cn.itcast.web.listener.MyServletContextListener</listener-class>

</listener>

生命周期:

第一次  空参构造(1次)->初始化(1次)     第二次   销毁化(1次)->空参构造(1次)->初始化(1次)       是一个单例的模式

在部署web应用是产生,即用户第一次访问之前已经产生,在重新部署web应用时,后销毁原监听器,再产生新的监听器

package cn.itcast.web.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

//事件监听器[用于监听ServletContext对象产生和销毁]
public class MyServletContextListener implements ServletContextListener{
	public MyServletContextListener(){
		System.out.println("空参构造");
		System.out.println(this.hashCode());
	}
	//产生
	public void contextInitialized(ServletContextEvent sce) {
		System.out.println("ServletContext产生");
		System.out.println(this.hashCode());
	}
	//销毁
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("ServletContext销毁");
		System.out.println(this.hashCode());
	}
}
package cn.itcast.web.listener;

import java.util.Date;

import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

//监听器[用于监听HttpSesison产生和销毁]
public class MyHttpSessionListener implements HttpSessionListener {
	//产生
	public void sessionCreated(HttpSessionEvent se) {
		HttpSession session = se.getSession();
		System.out.println(session.getId());
		System.out.println("sessionCreated()" + new Date().toLocaleString());
	}
	//销毁
	public void sessionDestroyed(HttpSessionEvent se) {
		HttpSession session = se.getSession();
		System.out.println(session.getId());
		System.out.println("sessionDestroyed()");
		System.out.println("sessionCreated()" + new Date().toLocaleString());
	}
}
package cn.itcast.web.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;

//监听器[用于监听ServletRequest对象的产生和销毁]
public class MyServletRequestListener implements ServletRequestListener {
	//产生
	public void requestInitialized(ServletRequestEvent sre) {
		System.out.println("requestInitialized()");
	}
	//销毁
	public void requestDestroyed(ServletRequestEvent sre) {
		System.out.println("requestDestroyed()");
	}
}
时间: 2024-10-11 10:39:22

监听器的相关文章

javaweb监听器

监听器的理解:对对象以及对象的状态实行监控,并对相应的改变执行相关的程序. 按照监听的对象可以分为:监听ServletContext(应用程序环境对象)的事件监听器 ServletContextListener HttpSession(用户会话对象)的事件监听器  HttpSessionListener ServletRequest(请求消息对象)的事件监听器  ServletRequsetListener Session何时被销毁? 关闭服务器的时候 与服务器有连接,但长期没有交互的时候 关闭

[原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Servlet监听器

简介 监听器:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动. 监听器的分类: 1) 监听域对象自身的创建和销毁的事件监听器 2) 监听域对象中的属性的增加和删除的事件监听器 3) 监听绑定到 HttpSession 域中的某个对象的状态的事件监听器 如何编写监听器: 1) 编写实现了监听器接口的Java 类 public class HelloServletContextListner implements ServletCon

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

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

SpringFramework4系列之SpringJMS:(四)异步接收消息 2.构建监听器

构建实现接口的监听器 编写监听器类并且实现监听器接口 public class ListenerDemo implements MessageListener {     public void onMessage(Message message) {         System.out.println(message.toString());     } } 注册MDP <!-- this is the Message Driven POJO (MDP) --> <bean id=&

过滤器、监听器、拦截器的区别

1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码.做一些业务逻辑判断等.其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request.Response)统一设置编码,简化操作:同时还可进行逻辑判断,如用户是否已经登陆.有没有权限访问该页面等等工作.它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用

事件源与监听器

事件:描述发生了什么的对象. 存在各种不同类型的事件类用来描述各种类型的用户交互. 事件源:事件的产生器. 事件处理器:接收事件.解释事件并处理用户交互的方法. 比如在Button组件上点击鼠标会产生以这个Button为源的一个ActionEvent,这个ActionEvent实例是一个对象,它包含关于刚才发生的那个事件的信息,这些信息包括: getActionCommand():返回与动作相关联的命令名称. getWhen():返回事件发生的时间. 如果用户在用户界面层执行了一个动作(鼠标点击

android开发中监听器的三种实现方法(OnClickListener)

Android开发中监听器的实现有三种方法,对于初学者来说,能够很好地理解这三种方法,将能更好地增进自己对android中监听器的理解. 一.什么是监听器. 监听器是一个存在于View类下的接口,一般以On******Llistener命名,实现该接口需要复写相应的on****(View v)方法(如onClick(View v)). 二.监听器的三种实现方法 (以OnClickListener为例) 方法一:在Activity中定义一个内部类继承监听器接口(这里是OnClickListener

监听器模拟用户在线

由于会话管理机制的原因,用户需在不同的浏览器上进行登录. 期间可以访问onlineservlet查询在线用户列表. 设置监听器: 1 package com.listener; 2 3 import java.util.LinkedList; 4 import java.util.List; 5 6 import javax.faces.application.Application; 7 import javax.servlet.ServletContext; 8 import javax.s