监听器

作者: 常威爆打来福 | 来源:发表于2017-09-12 20:07 被阅读0次

一 监听器作用
主要是用来监听特定对象的创建对象或销毁,属性的变化的!是一个实现特定接口的普通java类。
Servlet中哪些对象需要监听?
request/session/servletContext
分别对应的request监听器,session相关监听器,servletContext监听器
二 监听器(listener)概述
监听器接口

  • 监听器对象创建/销毁的监听器接口
    Interface ServletRequestListener 监听request对象的创建或销毁
    Interface HttpSessionListener 监听session对象的创建或销毁
    Interface ServletContextListener 监听servletContext对象的创建或销毁
  • 监听对象属性的变化
    Interface ServletRequestAttributeListener 监听request对象属性变化: 添加、移除、修改
    Interface HttpSessionAttributeListener 监听session对象属性变化: 添加、移除、修改
    Interface ServletContextAttributeListener 监听servletContext对象属性变化
  • session相关监听器
    Interface HttpSessionBindingListener 监听对象绑定到session上的事件
    Interface HttpSessionActivationListener(了解) 监听session序列化及反序列化的事件
    三 程序实现
    1 生命周期监听
    index.jsp
<%--
  Created by IntelliJ IDEA.
  User: pc
  Date: 2017/9/6
  Time: 17:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>路径问题</title>
</head>
<body>
<h2>欢迎访问index页面</h2>
<%
    request.setAttribute("name","Yang");
%>
</body>
</html>

RequestListener.java

package entity;

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

/**
 * Created by pc on 2017/9/12.
 */
public class RequestListener implements ServletRequestListener {
    public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
       Object object = servletRequestEvent.getServletRequest().getAttribute("name");
        System.out.println("2.对象销毁"+object);
    }

    public void requestInitialized(ServletRequestEvent servletRequestEvent) {
        Object object1 = servletRequestEvent.getServletRequest().getAttribute("name");
        System.out.println("1.对象创建"+object1);
    }
}

.xml配置

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
  <display-name>Archetype Created Web Application</display-name>
<listener>
  <listener-class>entity.RequestListener</listener-class>
</listener>
</web-app>

测试结果

2 属性监听(监听session变化)
index.jsp

<%--
  Created by IntelliJ IDEA.
  User: pc
  Date: 2017/9/6
  Time: 17:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>路径问题</title>
</head>
<body>
<h2>欢迎访问index页面</h2>
<%
    session.setAttribute("name","YY");
    session.removeAttribute("name");
%>
</body>
</html>

SessionAttributeListener.java

package entity;
import javax.servlet.http.*;

/**
 * Created by pc on 2017/9/12.
 */
public class SessionAttributeListener implements HttpSessionAttributeListener {

    public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("创建session");
    }

    public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("移除session");
    }

    public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
        System.out.println("修改session");
    }
}

.xml配置

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <listener>
    <listener-class>entity.SessionAttributeListener</listener-class>
  </listener>
</web-app>

运行结果

相关文章

  • SpringBoot--监听器解析

    监听器模式 监听器模式有要素 事件 监听器 广播器 触发机制 系统监听器 监听器 ApplicationListe...

  • 监听器

    一、监听器定义 现实生活 -web监听器 二、web监听器应用 三、创建监听器 1、创建一个实现监听器接口的类。 ...

  • JavaWeb - Listener

    监听器 实现一个监听器的接口. 编写一个监听器实现监听器的接口 web.xml 中注册监听器 看情况是否使用

  • Spring 监听器listener原理-基本使用(一)

    Spring 监听器listener原理-基本使用(一) Spring 监听器listener原理-手写监听器(二...

  • JavaEE_day23_Listener(监听器)

    一、监听器(Listener): 1.什么是监听器? 监听器就是监听某个对象的的状态变化的组件 监听器的相关概念:...

  • tomcat内存马Listener篇

    什么是监听器 监听器类型 java共有三种类型的监听器 ServletContext对象的监听器 它能够监听 Se...

  • 监听器

    一.监听器定义 二.web监听器的用途 三.创建监听器 创建一个实现监听器接口类( 实现的是ServletCont...

  • Bukkit插件开发教程 - 监听器

    监听器 - Listener 学习目标 理解监听器的意义 了解监听器的注册 @EventHandler注解的作用 ...

  • 2019-02-26 web监听器(慕课网学习笔记)

    1 监听器的定义 2 web中监听器的定义 3 web监听器的常用用途 4 创建第一个监听器 常规的web项目,需...

  • 23. 监听器

    12 监听器 实现一个监听器的接口 编写一个监听器package com.karl.listener;import...

网友评论

    本文标题:监听器

    本文链接:https://www.haomeiwen.com/subject/oefhsxtx.html