初学Servlet学习笔记之Listener
来源:互联网 发布:天才抢手 知乎 编辑:程序博客网 时间:2024/06/14 16:22
(作者是初学者,写博文纯粹为了做学习笔记,方便日后回顾,不当言论请见谅)
今天读到HttpSessionListener,get到一种显示当前在线登陆人数的方法,通过实现HttpSessionListener接口,可以通过sessionCreated()实现当登陆页面用户登陆成功session创建时人数自增1,如
public void sessionCreated(HttpSessionEvent arg0) {
//当session被创建的时候自动加一
OnlineUserCounter.counter++;
}
通过sessionDestroyed()实现当session被销毁时人数自减1,即
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
OnlineUserCounter.counter--;
}
另外,有时为了防止用户在不同浏览器重复登录,在用户登录成功时,会同时修改数据库中关于用户成功登录的字段信息,但是该做法会带来一个问题,比如当用户未选择注销而不小心关闭了浏览器时,session已被销毁而数据库中字段并未改变,这会导致用户无法再次登录,而HttpSessionListener可以实现在session创建时修改字段信息(例如为’已登录‘),在session被销毁时修改字段信息(例如’已注销‘),解决这一问题。如
public void sessoinDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
String user = session.getAttribute("login");
//修改数据库中字段为'注销'..........
}
接下来说一下HttpSessionBindingListener, 当用户登录成功时,在把某对象(例如用户名等)加入HttpSession中作为属性时,让该对象所属类实现HttpSessionBindingListener接口可以收到HttpSession的通知而实现在用户登录成功管理者想要做的功能。
public void valueBound(HttpSessionBindingEvent event){
HttpSession session = event.getSession();
// ...........................如从数据库中加载用户的各种数据
}
public void valueUnbound(HttpSessionBindingEvent event){
//................................
}
关于HttpSession还有很多知识,这里就做部分记录
- 初学Servlet学习笔记之Listener
- servlet listener学习笔记
- 学习JavaWeb之Servlet——listener
- Servlet 知识详解(五)之 —— Listener对象 监听器 学习笔记
- 初学 j2ee servlet 学习笔记(1)
- Servlet之Listener监听器
- Servlet之Listener监听器
- Servlet之监听器Listener
- Servlet学习笔记(九):监听器Listener详解
- spring boot学习8之Servlet/Filter/Listener配置
- Servlet 初学笔记
- Filter、Servlet、Listener的学习
- Servlet Listener之ServletContextListener用法
- Servlet入门_Three之Listener
- listener监听器学习笔记
- JavaWeb学习笔记之servlet
- 学习笔记之Servlet Filter
- Servlet学习之初笔记
- ios TableView那些事(三十 四)TableView 单选操作
- if exists用法(MSSQL)
- 数学 2016.2.16
- 弹窗 (居中 滚动)
- 数据结构与算法Javascript描述(四)双向链表
- 初学Servlet学习笔记之Listener
- iOS Apps间分享数据
- c3p0介绍与使用
- maven常用命令
- android的接口回调
- 百度质量部实习生内推2016
- 【网络流24题】试题库问题
- 销售订单界面仅查看设置
- CSS控制元素的在页面中水平、垂直居中