监听器Listener

2018-08-10  本文已影响0人  虫儿飞ZLEI

layout: post
title: 监听器Listener
subtitle: 用法
date: 2018-04-28
author: ZL
header-img: img/20180428.jpg
catalog: true
tags:
- 监听器Listener


监听器

Listener,和Android里面的那个listener都是一个意思。
不过这里的监听器没有Android那么多,主要就是对域的监听,包括request、session、servletContext
主要就是监听三大域对象的创建和销毁,域中属性的变化。
其实监听还不是就是回调,除了以上这些,自己写回调Listener还不是一回事。

六大监听

image

这六大监听都是对三大域的监听,对三大域的创建和销毁,三大域的属性的变化监听。

这里的监听的使用方法和Android中还有点不一样。

监听步骤

六大监听中的方法

  1. 监听ServletContext域的创建与销毁的监听器ServletContextListener

  1. 监听Httpsession域的创建于销毁的监听器HttpSessionListener

  1. 监听ServletRequest域创建与销毁的监听器ServletRequestListener
  1. 监听三大域对象的属性变化

session域中的对象的监听器(对象感知监听器)

之前的六大监听都是对三大域的监听,这里是对session域中的对象的监听。

  1. session域中的对象的状态:
  1. 具体的监听器及其方法
  1. 使用举例:
    和前面的六大监听不一样的是,这里不用在web.xml里面配置
    还有就是,这里是对session域中的对象进行监听,所以这个监听方法应该被该对象所实现。

    比如:

    package com.itheima.domian;
    
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionBindingListener;
    
    public class Person implements HttpSessionBindingListener{
    
        private String id;
        private String name;
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
        
        @Override
        //绑定的方法
        public void valueBound(HttpSessionBindingEvent event) {
            System.out.println("person被绑定了");
        }
        @Override
        //解绑方法
        public void valueUnbound(HttpSessionBindingEvent event) {
            System.out.println("person被解绑了");
        }
    }
    
    
  2. 钝化时间
    这个钝化的操作不是程序员进行的,但是可以配置文件来设置钝化时间,就是设置对象多长时间不用被钝化。

上一篇 下一篇

猜你喜欢

热点阅读