美文网首页Java web
JavaWeb Listener

JavaWeb Listener

作者: dawsonenjoy | 来源:发表于2018-12-30 11:54 被阅读0次

Java Web开发中,监听器常用与监听HttpServletRequest、HttpSession和ServletContext对象,包括创建/销毁、属性变化,还有session绑定JavaBean对象等

监听器创建步骤

1.创建一个类,继承对应的监听器接口
2.重写监听器里面的方法
3.在web.xml文件中对监听器进行注册

监听域对象的创建与销毁接口
1.ServletRequestListener

监听HttpServletRequest对象创建与销毁的接口

2.HttpSessionListener

监听HttpSession对象创建与销毁的接口

3.ServletContextListener

监听ServletContext对象创建与销毁的接口,举例:

package com;

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

public class ListenerTest implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ServletContext初始化..." + sce.getServletContext());
    }
    
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContext销毁...");
    }
    
}

在web.xml中注册如下:

<listener>
    <listener-class>com.ListenerTest</listener-class>
</listener>

则在打开和关闭tomcat时可以看到初始化和销毁的输出语句

监听域对象属性变化接口

需实现里面的attributeAdded()attributeRemoved()attributeReplaced()接口

1.ServletRequestAttributeListener

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

2.HttpSessionAttributeListener

监听HttpSession对象属性变化的接口,举例:

import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

public class ListenerTest implements HttpSessionAttributeListener {

    public void attributeAdded(HttpSessionBindingEvent se) {
        System.out.println("添加属性:" + se.getName() + "-" + se.getValue() );
    }
    public void attributeRemoved(HttpSessionBindingEvent se) {
        System.out.println("删除属性");
    }
    public void attributeReplaced(HttpSessionBindingEvent se) {
        System.out.println("替换属性");
    }
}

注:
可以看到传入的参数为HttpSessionBindingEvent,即用于监听绑定到Session对象的类,里面有获取这个对象里属性的方法,如getName()/getValue()

3.ServletContextAttributeListener

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

监听JavaBean对象绑定接口

该监听器是绑定在JavaBean对象上的,即对于需要绑定的JavaBean对象来继承该监听器,并且不需要在web.xml中注册

1.HttpSessionBindingListener

监听Session中是否绑定了JavaBean对象接口,举例:

package com.aaa;

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

public class User implements HttpSessionBindingListener {
    private String name;
    private String password;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    public void valueBound(HttpSessionBindingEvent event) {
        System.out.println("User对象被绑定:" + event.getName()); 
    }
    public void valueUnbound(HttpSessionBindingEvent event) {
        System.out.println("User对象解除绑定");   
    }
}

相关文章

  • JavaWeb三大组件之监听器(Listener)

    title: JavaWeb三大组件之监听器(Listener)tags: JavaWeb 监听器categori...

  • JavaWeb--Listener

    Listener:监听器,是JavaWeb三大组件(Servlet、Filter、Listener)之一监听器可以...

  • JavaWeb Listener

    Java Web开发中,监听器常用与监听HttpServletRequest、HttpSession和Servle...

  • JavaWeb - Listener

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

  • Servlet、Filter、Listener

    JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别...

  • JavaWeb三大组件(Servlet、Filter、Liste

    JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别...

  • 黑猴子的家:JavaWeb 之 Servlet Listener

    1、监听器简介 Listener是JavaWeb中三大组件之一。Servlet、Filter、Listener三大...

  • javaee 02 servlet

    servlet 是javaWeb 三大组件之一(Servlet,Filter,Listener)servlet 的...

  • JavaWeb--Listener

    一、基本概念 JavaWeb里面的listener是通过观察者设计模式进行实现的。对于观察者模式,这里不做过多介绍...

  • Javaweb组件--Listener

    监听器就是实现特定接口的Java类,这个类专门用于监听另一个Java对象的方法调用或者属性改变,当监听对象发生上述...

网友评论

    本文标题:JavaWeb Listener

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