VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 100_监听器 Listener

监听器开发步骤

实现监听器接口,重写方法

package com.qing.listener;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * 统计网站在线人数:统计session
 */
public class OnlineCountListener implements HttpSessionListener {
    // 创建session监听:一旦创建session就会触发一次这个监听
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("sessionId: " + se.getSession().getId());
        ServletContext sc = se.getSession().getServletContext();
        Integer onlineCount = (Integer) sc.getAttribute("onlineCount");
        if (onlineCount == null) {
            onlineCount = 1;
        } else {
            onlineCount += 1;
        }
        sc.setAttribute("onlineCount",onlineCount);
    }

    // 销毁session监听:一旦销毁session就会触发一次这个监听
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext sc = se.getSession().getServletContext();
        Integer onlineCount = (Integer) sc.getAttribute("onlineCount");
        if (onlineCount == null) {
            onlineCount = 0;
        } else {
            onlineCount -= 1;
        }
        sc.setAttribute("onlineCount",onlineCount);
    }

    /*
     session销毁的两种方式:

     1. 手动销毁:session.invalidate();
     2. 自动销毁:在web.xml中设置session自动过期
        <!--设置session的默认失效时间-->
        <session-config>
          <!--15分钟后session自动失效,以分钟为单位-->
          <session-timeout>15</session-timeout>
        </session-config>
      */
}

web.xml中配置监听器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!--配置监听器-->
    <listener>
        <listener-class>com.qing.listener.OnlineCountListener</listener-class>
    </listener>

    <!--设置session的默认失效时间-->
    <session-config>
        <!--15分钟后session自动失效,以分钟为单位-->
        <session-timeout>1</session-timeout>
    </session-config>
</web-app>
 
原文:https://www.cnblogs.com/wl3pb/p/14646807.html


相关教程