狂神说JavaJavaWeb入门到实战--监听器

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了狂神说JavaJavaWeb入门到实战--监听器相关的知识,希望对你有一定的参考价值。

1.实现一个监听器的接口;(有n种)

实现监听器的接口

package cn.bloghut.listener;

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

/**
 * 统计网站在线人数 :统计session
 */
public class OnlineCountListener implements HttpSessionListener 
    /**
     * 创建session 监听 : 看你的一举一动
     * 一旦创建session就会触发一次这个事件!
     *
     * @param se
     */
    @Override
    public void sessionCreated(HttpSessionEvent se) 
        ServletContext context = se.getSession().getServletContext();
        System.out.println(se.getSession().getId());
        Integer onLineCount = (Integer) context.getAttribute("onLineCount");

        if (onLineCount == null) 
            onLineCount = new Integer(1);
         else 
            //不为空,在线数量+1
            onLineCount++;
        
        //更新在线人数
        context.setAttribute("onLineCount",onLineCount);

    

    /**
     * 销毁session 监听
     * 一旦session 就会触发一次这个事件!
     *
     * @param se
     */
    @Override
    public void sessionDestroyed(HttpSessionEvent se) 
        ServletContext context = se.getSession().getServletContext();
        Integer onLineCount = (Integer) context.getAttribute("onLineCount");

        if (onLineCount == null)
            onLineCount = 0;
        else 
            onLineCount = onLineCount - 1;
        
        context.setAttribute("onLineCount",onLineCount);

    
    /**
     * session销毁
     *
     * 1.手动销毁 getSession().invalidate();
     * 2.自动销毁
     */


2.在web.xml中配置

<!--注册监听器-->
<listener>
    <listener-class>cn.bloghut.listener.OnlineCountListener</listener-class>
</listener>

3.看情况是否使用

以上是关于狂神说JavaJavaWeb入门到实战--监听器的主要内容,如果未能解决你的问题,请参考以下文章

狂神说JavaJavaWeb入门到实战--Tomcat详解

狂神说JavaJavaWeb入门到实战--Http协议详解

狂神说JavaJavaWeb入门到实战--Maven详解

狂神说JavaJavaWeb入门到实战--MVC三层架构

狂神说JavaJavaWeb入门到实战--web基本概念

狂神说JavaJavaWeb入门到实战--Filter 过滤器