JavaWeb学习笔记(Servlet事件监听器)

本文详细介绍了Servlet事件监听器,包括监听域对象生命周期的ServletContextListener、HttpSessionListener和ServletRequestListener接口,以及监听域对象属性变更的相关接口。通过实例展示了如何监听对象的创建、销毁、属性增加、删除和绑定事件,帮助理解Web应用程序中事件监听器的工作原理和应用。
摘要由CSDN通过智能技术生成

Servlet事件监听器概述

在好处呢关系开发中,经常需要对某些事件进行监听,如监听鼠标单击事件、监听按键事件等,此时需要使用事件监听器。
监听器中有几个重要组成部分:
(1)事件:用户的一个操作
(2)事件源:产生事件的对象
(3)事件监听器:负责监听发生在事件源上的事件
(4)事件处理器:监听器的成员方法,当事件发生的时候会触发对应的处理器的方法。
事件监听器在进行工作是的步骤:
(1)将监听器绑定到事件源上,也就是注册监听器
(2)事件发生是会触发监听器的成员方法,即事件处理器,传递事件对象
(3)事件处理器通过事件对象获得事件源,并对事件源进行处理。
事件监听器的种类
(1)用于监听域对象创建和小会的时间监听器(ServletContextListener接口,HttpSessionListener接口,ServletRequestListener接口)。
(2)用于监听域对象属性增加和删除的时间监听器(ServletContextAttributeListener接口、HttpSessionAttributeListener接口、ServletRequestAttributeListener接口)。
(3)用于监听绑定到HTTPSession域中某个对象状态的时间监听器(HttpSessionBindingListener接口、HttpSessionActivationListener接口)。

监听域对象的生命周期

在Web应用程序的运行期间,Web容器会创建和销毁三个比较重要的对象ServletContext、HttpSession和ServletRequest,这些对象被称为域对象。

ServletContextListener接口

ServletContextListener用来监听ServletContext对象的生命周期,ServletContext对象用于监听该对象的创建于销毁过程。ServletContextListener接口定义了两个事件处理方法。
(1)contextlnitialized()方法
语法定义:

public void contextInitialized(servletContextEvent sce)

当ServletContext对象被创建时,Web容器会调用contextInitialized()方法,contextInitalized()方法接收一个ServletContextEvent类型的参数,contextInitialized()方法内部通过参数创建ServletContext对象。
(2)contextDestroyed()方法
语法定义为:

public void contextDestroyed(servletContextEvent sce)

当ServletContext对象快要被销毁时,Web容器回调用contextDestroy()方法。

HttpSessionListener接口

HttpSession用于完成会话操作,为了监听HttpSession 对象的创建和销毁ServletAPI提供一个HTTPSessionListener接口,当Web应用程序注册了一个或多个实现了HTTPSessionListener接口的事件监听器,Web容器在创建或销毁每个HttpSession对象就会产生一个HttpSessionEvent事件对象,然后依次调用HttpSession事件监听器的相应方法,并将HttpSessionEvent事件对象传递给这些方法。
(1)sessionCreated()方法
语法定义:

public void sessionCreated(HttpSessionEvent se)

每当一个HttpSession对象被创建时,Web容器都会调用sessionCreated()方法,sessionCreated()方法接收一个HttpSessionEvent类型的参数,sessionCreated()方法,内部都可以通过这个参数来获取当前创建的HttpSession对象。
(2)sessionDestroy()方法
语法定义:

public void sessionDestroyed(HttpSessionEvent se)

每当一个HttpSession对象即将被销毁时,Web容器都会调用sessionDestroyed()方法,并将HttpSessionEvent事件对象传递给这个方法。

ServletRequestListener接口

ServletRequest对象用于获取客户端发送的请求数据,为了监听ServletRequest对象的创建和销毁过程,Servlet API提供了ServletRequestListener接口,当Web应用程序中注册了一个或多个实现了ServletRequestListener接口的事件监听器时,Web容器在创建或销毁每个ServletRequest对象时都会产生一个ServletRequestEvent事件对象,然后依次调用每个ServletRequest事件监听器中的相应处理关系。
(1)RequestInitialized()方法

public void requestInitialized(servletRequestEvent sre)

每当一个ServletRequest对象创建时,Web容器都会调用requestIntitlized()方法,resquestInitlized()方法就收一个ServletRequestEvent类型的参数,requestInitialized()方法内部可以通过这个参数来获取当前创建的ServletRequest对象。
(2)requestDestroyed()方法
语法定义:

pubic voidrequestDestroyed(ServletRequestEvent sre)

每当一个ServletRequest对象销毁时,Web容器都会调用requestDestroyed()方法,并将ServletRequestEvent对象传递给这个方法。

示例:
监听域对象的生命周期
(1)创建一个工程,在工程中创建一个cn.itcast.chapter05.listener包,该包中编写一个MyListener类,这个类实现了ServletContextListener、HttpSessionListener和ServletRequestListener三个监听器接口。

  package cn.itcast.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebLi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值