JavaWeb之監(jiān)聽器案例講解
1. 監(jiān)聽器
實(shí)現(xiàn)一個(gè)監(jiān)聽器的接口;(有n種監(jiān)聽器)
1.1 編寫一個(gè)監(jiān)聽器(實(shí)現(xiàn)監(jiān)聽器接口)
OnlineCountListener .java
package com.tian.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
//統(tǒng)計(jì)網(wǎng)站在線人數(shù) : 統(tǒng)計(jì)session
public class OnlineCountListener implements HttpSessionListener {
//創(chuàng)建session監(jiān)聽: 看你的一舉一動(dòng)
//一旦創(chuàng)建Session就會(huì)觸發(fā)一次這個(gè)事件!
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監(jiān)聽
//一旦銷毀Session就會(huì)觸發(fā)一次這個(gè)事件!
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. 手動(dòng)銷毀 getSession().invalidate();
2. 自動(dòng)銷毀
web.xml
<session-config>
<!--1分鐘后session自動(dòng)銷毀-->
<session-timeout>1</session-timeout>
</session-config>
*/
}
1.2 配置監(jiān)聽器
web.xml
<!--注冊(cè)監(jiān)聽器-->
<listener>
<listener-class>com.tian.listener.OnlineCountListener</listener-class>
</listener>
1.3 啟動(dòng)服務(wù)器


到此這篇關(guān)于JavaWeb之監(jiān)聽器案例講解的文章就介紹到這了,更多相關(guān)JavaWeb之監(jiān)聽器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解使用Jenkins部署Spring Boot項(xiàng)目
這篇文章主要介紹了詳解使用Jenkins部署Spring Boot,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
Java BigDecimal類的使用和注意事項(xiàng)
這篇文章主要講解Java中BigDecimal類的用法,并簡(jiǎn)單介紹一些注意事項(xiàng),希望能給大家做一個(gè)參考。2016-06-06
java工具類之實(shí)現(xiàn)java獲取文件行數(shù)
這篇文章主要介紹了一個(gè)java工具類,可以取得當(dāng)前項(xiàng)目中所有java文件總行數(shù),代碼行數(shù),注釋行數(shù),空白行數(shù),需要的朋友可以參考下2014-03-03
Mybatis報(bào)錯(cuò)日志BindingException的解決
本文主要介紹了Mybatis報(bào)錯(cuò)日志BindingException的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
解析Java的JNI編程中的對(duì)象引用與內(nèi)存泄漏問題
這篇文章主要介紹了Java的JNI編程中的對(duì)象引用與內(nèi)存泄漏問題,重點(diǎn)講述了局部和全局引用時(shí)一些值得注意的地方,需要的朋友可以參考下2015-11-11
IDEA中的yml文件與properties互相轉(zhuǎn)換
這篇文章主要介紹了IDEA中的yml文件與properties互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
java實(shí)現(xiàn)一次性壓縮多個(gè)文件到zip中的方法示例
這篇文章主要介紹了java實(shí)現(xiàn)一次性壓縮多個(gè)文件到zip中的方法,涉及java針對(duì)文件批量壓縮相關(guān)的文件判斷、遍歷、壓縮等操作技巧,需要的朋友可以參考下2019-09-09
JDK14的新特性NullPointerExceptions的使用
這篇文章主要介紹了JDK14的新特性NullPointerExceptions的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

