`

Java监听器Listener

阅读更多

1、什么是Java监听器

监听器也叫Listener,是Servlet监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。

 

2、Listener接口分类

1.1> ServletContextListener监听ServletContext对象

1.2> ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改

  

2.1> HttpSessionListener监听Session对象

2.2> HttpSessionActivationListener监听HTTP会话的activepassivate情况,passivate是指非活动的session被写入持久设备(比如硬盘),active相反。

2.3> HttpSessionAttributeListener监听Session中的属性操作

 

3.1> ServletRequestListener监听Request对象

3.2> ServletRequestAttributeListener监听Requset中的属性操作

 

3、Java代码

   1.1> ServletContextListener

 

contextInitialized(ServletContextEvent) 初始化时调用

contextDestoryed(ServletContextEvent) 销毁时调用,即当服务器重新加载时调用

 

   2.1>HttpSessionListener

 

 

sessionCreated(HttpSessionEvent) 初始化时调用

sessionDestoryed(HttpSessionEvent) 销毁时调用,即当用户注销时调用

 

   3.1>ServletRequestListener

 

requestinitialized(ServletRequestEvent) 对实现客户端的请求进行监听

requestDestoryed(ServletRequestEvent) 对销毁客户端进行监听,即当执行request.removeAttribute("XXX")时调用

 

 

4、Demo

1>创建Java类,实现对应的接口

 

 

package com.lacom;

 

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

 

public class TestSessionListener implements HttpSessionListener {

 

@Override

public void sessionCreated(HttpSessionEvent event) {

// session 创建时执行的操作

// 例如:在线人数+1

 

}

 

@Override

public void sessionDestroyed(HttpSessionEvent event) {

// session 销毁时执行的操作

// 例如:在线人数-1

 

}

 

}

 

2>web.xml中配置

 

 

<?xml version="1.0" encoding="UTF-8"?>

<web-appweb-appversion="2.5" 

xmlns="http://java.sun.com/xml/ns/javaee" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<listener>

<listener-class>com.lacom.TestSessionListener</listener-class>

</listener>

</web-app>

 

5、Java项目中用到的spring监听器

ContextLoaderListener

作用

启动Web容器时,自动装配ApplicationContext的配置信息。

用法:

第一种:直接将applicationContext.xml(spring的配置文件)放到/WEB-INF下,只在web.xml中声明一个listener

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

第二种:将之放到classpath下,但是此时要在web.xml中加入<context-param>,用它来指明你的applicationContext.xml的位置以供web容器来加载。如果有多个xml文件,可以写在一起并用“,”号分隔。例如近铁项目中的配置:

 

 

 

Log4jConfigListener

好处:
   1. 动态的改变记录级别和策略,不需要重启Web应用,如《Effective Enterprise Java》所说。
   2. log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。
因为 系统把web目录的路径压入一个叫webapp.root的系统变量。这样写log文件路径时不用写绝对路径了.
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log
   3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path
   4.log4jRefreshInterval60000表示 开一条watchdog线程每60秒扫描一下配置文件的变化;

用法:
   在web.xml 添加
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>WEB-INF/log4j.properties</param-value>
    </context-param>

    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>60000</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

分享到:
评论

相关推荐

    JAVA Servlet监听器listener学习资料

    JAVA Servlet监听器listener学习资料,精心整理,望对各位大虾有帮助。

    java监听器的实现和原理详解

    主要给大家介绍了关于java监听器实现和原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    JavaWeb开发技术-Listener监听器.pptx

    Listener监听器 JavaBean Servlet Jsp XML HTML JAVA WEB开发技术 Listener监听器 事件监听器用于对程序中发生的事件进行监听,在监听的过程中会涉及几个重要组成部分: 事件(Event) 事件源 事件处理器 事件监听器...

    java listener监听器教程及实例

    我们在编写JSP/Servle程序时,有相应的事件处理机制,在JSP/Servlet中是在web.xml中注册Listener,由Container在特定事件发生时呼叫特定的实现Listener的类。

    Java Web监听器Listener接口原理及用法实例

    主要介绍了Java Web监听器Listener接口原理及用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java事件监听方法和代码

    Java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public ...

    JAVA监听器响应机制模拟

    最近一直在搞低耦合的代码设计,后来发现JAVA中的监听器效果很不错,就特地研究了一下监听流程,后来经过调试终于成功,供大家分享下: 响应代码: /** * 事件响应运行 * @author wangchen * */ class EventRun {...

    第7章 过滤器Filter和监听器Listener.ppt

    Java Web基础与实例教程的PPT,自己制作的PPT,将近400页,免费分享,童鞋们努力学习吧。

    java_listener监听器教程及实例.pdf

    java_listener监听器教程及实例.pdf

    JAVALISTENER监听器教程及实例借鉴.pdf

    JAVALISTENER监听器教程及实例借鉴.pdf

    Comet4Listener监听器

    java消息推送技术中的监听器类,用于创建和监听通道数据

    java 监听器的解析

    监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当增加一个HttpSession时,就激发sessionCreated...

    Java中的Listener监听器

    本文介绍了Listener以下几个方面的内容:  · Listener的定义与作用  · Listener的分类与使用  ServletContext监听  Session监听  Request监听  · Listener的应用实例  利用HttpSessionListener统计...

    java内置观察者模式

    java内置的观察者模式,用于日后复习查阅。

    用java实现监听对象的属性变更

    1、 实验目的 学会使用监听域对象的属性变更 2、 实验环境 Eclipse 3、 实验内容 ...(2)在cn.itcast.chapter08.listener包中,编写一个名为MyAttributeListener的监听器类。 (3)添加监听信息。

    线程+监听技术 简单的例子 和详细讲解

    监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计  所谓线程(或称线索,thread),指程序中的以单一的顺序控制流。线程按顺序执行,即在一个线程中,一个时刻只能由一个执行点。显然...

    23-Listener-源代码.rar

    案例-使用监听器完成定时生日祝福、,一、监听器Listener 二、邮箱服务器。 1.什么是监听器? 2.监听器有哪些? 3.监听三大域对象的创建与销毁的监听器 4.监听三大域对象的属性变化的 5.与session中的绑定的...

    Jmeter常用监听器插件.zip

    jmeter安装后,需安装old style插件引入监听器jar包。提供常用插件包,以更新到lib和lib/ext目录,以防忘记。顺便放了个数据库测试插件mysql-connector-java-xxx.jar文件,是放到lib目录,其他更新到ext目录。

    keycloak-kafka-event-listener:自定义事件监听器,将所有Keycloak事件发布到Kafka

    keycloak-kafka-事件监听器自定义事件监听器,将所有Keycloak事件发布到Kafka

    smsListener.rar_Radio_SMSListener_radio java_sms listener_广播接收

    利用广播接收者写的短信监听器,请勿非法使用

Global site tag (gtag.js) - Google Analytics