JavaWeb之監聽器案例講解

1. 監聽器

實現一個監聽器的接口;(有n種監聽器)

1.1 編寫一個監聽器(實現監聽器接口)

OnlineCountListener .java

package com.tian.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) {
        ServletContext ctx = se.getSession().getServletContext();

        System.out.println(se.getSession().getId());

        Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");

        if (onlineCount == null) {
            onlineCount = new Integer(1);
        } else {
            int count = onlineCount.intValue();
            onlineCount = new Integer(count + 1);
        }

        ctx.setAttribute("OnlineCount", onlineCount);

    }

    //銷毀session監聽
    //一旦銷毀Session就會觸發一次這個事件!
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext ctx = se.getSession().getServletContext();

        Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");

        if (onlineCount == null) {
            onlineCount = new Integer(0);
        } else {
            int count = onlineCount.intValue();
            onlineCount = new Integer(count - 1);
        }

        ctx.setAttribute("OnlineCount", onlineCount);

    }
    /*
    Session銷毀:
    1. 手動銷毀  getSession().invalidate();
    2. 自動銷毀
	web.xml
	    
    <session-config>
        <!--1分鐘後session自動銷毀-->
        <session-timeout>1</session-timeout>
    </session-config>

     */
}

1.2 配置監聽器

web.xml

    <!--註冊監聽器-->
    <listener>
        <listener-class>com.tian.listener.OnlineCountListener</listener-class>
    </listener>

1.3 啟動服務器

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

到此這篇關於JavaWeb之監聽器案例講解的文章就介紹到這瞭,更多相關JavaWeb之監聽器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: