如果你想用session统计一个在线人数等功能的话,那么这篇文章你就看对了,可以监听session的创建和销毁,至于其他功能你就可以随意的去写了
session监听可以监听到session的创建和销毁等操作,如果需要去做在线人数统计,那么需要这两个就足够了。
创建session监听类
package com.sunjs.commons;
// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// . ' \\| |// `.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '< `.___\_<|>_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
//
// .............................................
// 佛祖保佑 永无BUG
// 佛曰:
// 写字楼里写字间,写字间里程序员;
// 程序人员写程序,又拿程序换酒钱。
// 酒醒只在网上坐,酒醉还来网下眠;
// 酒醉酒醒日复日,网上网下年复年。
// 但愿老死电脑间,不愿鞠躬老板前;
// 奔驰宝马贵者趣,公交自行程序员。
// 别人笑我忒疯癫,我笑自己命太贱;
// 不见满街漂亮妹,哪个归得程序员?
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.log4j.Logger;
/**
* session 监听
* @author sun
*/
public class SessionListener implements HttpSessionListener {
protected static final Logger LOG = Logger.getLogger(SessionListener.class);
@Override
public void sessionCreated(HttpSessionEvent event) {
//创建session的时候可以监听到
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
// HttpSession session = event.getSession();
// String sessionId = session.getId();
//session销毁的时候可以监听到
}
}
web.xml 需要配置listener节点
<listener>
<listener-class>com.sunjs.commons.SessionListener</listener-class>
</listener>
完成,此时session已经可以监听了。
如果你想做一个在线人数统计,那么只需要在创建和销毁的操作内存中的数据即可,redis、memcache或者系统内的map都可以。
我写了个简单的例子在我的个人博客
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/48e3bd8faf42481bb21e80bba63b840d.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。