当前位置:  技术问答>java相关

对于 session 绑定事件的使用

    来源: 互联网  发布时间:2015-06-20

    本文导语:  看到书里说 可以绑定两个事件到 session 中 一个是在创建时, 一个是在退出时 实际使用的时候, 可否应用为 比如在论坛中, 前一个将该用户加入在线列表, 后一个将该用户从在线列表删除 或者在聊天室中, 前一...

看到书里说

可以绑定两个事件到 session 中

一个是在创建时, 一个是在退出时

实际使用的时候, 可否应用为

比如在论坛中, 前一个将该用户加入在线列表, 后一个将该用户从在线列表删除

或者在聊天室中, 前一个开始计算点数, 后一个保存点数

是否可以这样用?

是否有不稳定的情况? ( 比如session非正常销毁 )

|
利用HttpSessionListener统计在线人数

转自JSPCHINA

JSP显示在线人数代码 

/** 
* 编写以下SessionCounter.java 
* 并编译为SessiionCounter.class 
* 然后放到你的网站的classpath的 
* SessionCount(自己建立此目录)下面 
*/ 

package SessionCount; import javax.servlet.*; import javax.servlet.http.*; public class SessionCounter implements HttpSessionListener { private static int activeSessions = 0; public void sessionCreated(HttpSessionEvent se) { activeSessions++; } public void sessionDestroyed(HttpSessionEvent se) { if(activeSessions > 0) activeSessions--; } public static int getActiveSessions() { return activeSessions; } } 

接着建立online.jsp文件用于显示在线人数 

在线: 

然后需要在你的网站的WEB-INF中建立web.xml 
文件内容如下: 

       SessionCount.SessionCounter    

然后重新启动你的应用服务器,访问online.jsp检查是否显示正确。 

你的问题和这个大同小异,原理相同,应用的是不同的监听器而已。

欢迎到www.javaresearch,org看看。

|
session一般都是這樣用來保存用戶個人信息的.
如果用戶直接關閉瀏覽器,服務器是無法知道的,當會話超時(一般為30分鐘)會產生HttpSessionBindingEvent,使用public void valueBound(HttpSessionBindingEvent e)來捕獲此事件

|
你的这种用法不也是:一个是在创建时, 一个是在退出时吗?

|
sorry 創建時的方法是public void valueBound(HttpSessionBindingEvent e)
銷毀時的是public void valueUnbound(HttpSessionBindingEvent e)

|
楼主可以在session中放入一个类的object来支持这些事件,比如论坛的问题,当某人登陆的时候,他session中的这个object的状态改变,该object的

|
listener可以听到这些事件。但好像实际中没有多少人这样用的。

|
可以放在一个全局变量中。如
class A {
   static int i =0; 
}

进行记数。
但是不能做到离开时去掉,因为session的异常销毁。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql枚举rowidlifetime的类成员方法: rowid_valid_session定义及介绍
  • 关于session(我停了一会儿没动网页,再在点击网页链接时,session丢失,然后点击IE的刷新,session又有了)这是怎么回事。
  • java命名空间javax.xml.ws接口bindingprovider成员方法: session_maintain_property定义参考
  • PHP的Session封装 Zebra_Session
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • session.getValue()和session.getAttribute()有什么区别?
  • Session id实现通过Cookie来传输方法及代码参考
  • 急!在servlet中如何设置session,,又如何取得session的值???
  • php session_id()函数介绍及代码实例
  • session.setAttribute与session.setValue的区别在哪?
  • java tomcat实现Session对象的持久化原理及配置方法介绍
  • CSS属性参考手册 iis7站长之家
  • aps.net session全面介绍(生命周期,超时时间)
  • PHP的Session管理类 My Session
  • php会话(session)生命周期概念介绍及设置更改和回收
  • 如何清空session变量的值,或者删除一个session变量
  • php5中当浏览器禁用cookie时保持会话session的方法
  • 比较菜鸟的问题session.getValue("XX")和session.getAttribute("XX")有什么区别吗
  • java Servlet实现Session创建存取以及url重写代码示例
  • session问题,如何去掉一个session中的一个值.
  • php session 原理详解,用法介绍以及如何设置过期时间
  • 为什么新生成一个session对象后,jsp page中的scope=session的bean会不正常?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3