监听器

作者: 帅哥_刷哥 | 来源:发表于2017-10-10 23:45 被阅读10次

监听器

概述
API
    ServletContextListener  
        在Servlet上下文对象初始化或者销毁时得到通知,位于javax.servlet包下
        常用方法:
            contextInitialized(ServletContextEvent  arg)    
                在Web应用程序初始化开始时由Web容器调用,该方法无返回值
            contextDestory(ServletContextEvent  arg)    
                当Servlet上下文将要关闭时由Web容器调用,该方法无返回值
    ServletContextAttributeListener 
        在Servlet上下文中的属性列表发生变化时得到通知,位于javax.servlet包下
    HttpSessionListener 
        在Session创建后或者失效前得到通知,位于javax.servlet.http包下
    HttpSessionActivationListener   
        实现该接口的对象,如果绑定到Session中,当Session被钝化或者激活时,Servlet容器将通知该对象,位于javax.servlet.http包下
    HttpSessionBindingListener接口
        常用方法:
            valueBound(HttpSessionBindingEvent event)   
                当对象被添加到Session时,由容器调用该方法来通知对象,该方法无返回值
            valueUnbound(HttpSessionBindingEvent event) 
                当对象从Session中清除时,由容器调用该方法来通知对象,该方法无返回值
ServletContext监听
    public class MyContextListener implements ServletContextListener, ServletContextAttributeListener {
        @Override
        public void attributeAdded(ServletContextAttributeEvent arg0) {
            System.out.println("属性添加");
        }
        @Override
        public void attributeRemoved(ServletContextAttributeEvent arg0) {
            System.out.println("属性修改");
        }
        @Override
        public void attributeReplaced(ServletContextAttributeEvent arg0) {
            System.out.println("属性删除");
        }
        @Override
        public void contextDestroyed(ServletContextEvent arg0) {
            System.out.println("ServletContext对象销毁时调用");
        }
        @Override
        public void contextInitialized(ServletContextEvent arg0) {
            System.out.println("ServletContext对象创建时调用");
        }
    }
    <listener>
        <listener-class>com.shuai.listeners.MyContextListener</listener-class>
    </listener>
HttpServletRequest监听
    public class MyRequestListener implements ServletRequestListener, ServletRequestAttributeListener {
        @Override
        public void attributeAdded(ServletRequestAttributeEvent arg0) {
            System.out.println("增加属性");
        }
        @Override
        public void attributeRemoved(ServletRequestAttributeEvent arg0) {
            System.out.println("删除属性");
        }
        @Override
        public void attributeReplaced(ServletRequestAttributeEvent arg0) {
            System.out.println("替换属性的值");
        }
        @Override
        public void requestDestroyed(ServletRequestEvent arg0) {
            System.out.println("request销毁");
        }
        @Override
        public void requestInitialized(ServletRequestEvent arg0) {
            System.out.println("request创建");
        }
    }
    <listener>
        <listener-class>com.shuai.listeners.MyRequestListener</listener-class>
    </listener>
HttpSession监听
    public class MySessionListener implements HttpSessionListener, HttpSessionAttributeListener {
        @Override
        public void attributeAdded(HttpSessionBindingEvent arg0) {
            System.out.println("新增属性");
        }
        @Override
        public void attributeRemoved(HttpSessionBindingEvent arg0) {
            System.out.println("属性移除");
        }
        @Override
        public void attributeReplaced(HttpSessionBindingEvent arg0) {
            System.out.println("修改属性");
        }
        @Override
        public void sessionCreated(HttpSessionEvent arg0) {
            System.out.println("session创建");
        }
        @Override
        public void sessionDestroyed(HttpSessionEvent arg0) {
            System.out.println("session销毁");
        }
    }
    <listener>
        <listener-class>com.shuai.listeners.MySessionListener</listener-class>
    </listener>
    全局改变session回收时间
        web.xml中配置
            <session-config>
                <session-timeout>1</session-timeout>
            </session-config>
案例
    显示当前登录的用户-并且可以踢出用户
    HTTPSession属性监听器-当用户登录的时候把登录信息保存到session中
    session监听到属性增加的时候,把用户信息保存到application中。
    session监听到属性移除的时候,把用户信息从application中移除。
    一个servlet专门用来做用户的显示
    做一个请求过滤器做权限控制。
其它
    访问者ip
        request.getRemoteHost()
    session创建时间
        session.getCreationTime()
    session最后访问时间
        session.getLastAccessedTime()

相关文章

  • 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/pqzbyxtx.html