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)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/I_r_o_n_M_a_n/article/details/115497346