jsp 登陆日志,在线人数实现(必须熟习的知识的).docx

jsp 登陆日志,在线人数实现(必须熟习的知识的).docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jsp 登陆日志,在线人数实现(必须熟习的知识的)

jsp 登陆日志,在线人数实现(必须熟习的知识的)一、?????????? Servlet的会话管理机制根据设计,HTTP是一种无状态的协议。它意味着Web应用并不了解有关同一用户以前请求的信息。维持会话状态信息的方法之一是使用Servlet或者JSP容器提供的会话跟踪功能。Servlet API规范定义了一个简单的HttpSession接口,通过它我们可以方便地实现会话跟踪。HttpSession接口提供了存储和返回标准会话属性的方法。标准会话属性如会话标识符、应用数据等,都以“名字-值”对的形式保存。简而言之,HttpSession接口提供了一种把对象保存到内存、在同一用户的后继请求中提取这些对象的标准办法。在会话中保存数据的方法是setAttribute(String s, Object o),从会话提取原来所保存对象的方法是getAttribute(String s)。每当新用户请求一个使用了HttpSession对象的JSP页面,JSP容器除了发回应答页面之外,它还要向浏览器发送一个特殊的数字。这个特殊的数字称为“会话标识符”,它是一个唯一的用户标识符。此后,HttpSession对象就驻留在内存之中,等待同一用户返回时再次调用它的方法。在客户端,浏览器保存会话标识符,并在每一个后继请求中把这个会话标识符发送给服务器。会话标识符告诉JSP容器当前请求不是用户发出的第一个请求,服务器以前已经为该用户创建了HttpSession对象。此时,JSP容器不再为用户创建新的HttpSession对象,而是寻找具有相同会话标识符的HttpSession对象,然后建立该HttpSession对象和当前请求的关联。会话标识符以Cookie的形式在服务器和浏览器之间传送。如果客户端不支持cookie,运用url改写机制来保证会话标识符传回服务器。二、?????????? Session事件侦听HttpSessionBindingEvent类\??????定义\??????public?class?HttpSessionBindingEvent?extends?EventObject??????这个事件是在监听到HttpSession发生绑定和取消绑定的情况时连通HttpSessionBindingListener的。这可能是一个session被终止或被认定无效的结果。??????事件源是HttpSession.putValue或HttpSession.removeValue。??????构造函数??????public?HttpSessionBindingEvent(HttpSession?session,?String?name);??????通过引起这个事件的Session和发生绑定或取消绑定的对象名构造一个新的HttpSessionBindingEvent。??????方法??????1、getName??????public?String?getName();??????返回发生绑定和取消绑定的对象的名字。??????2、getSession??????public?HttpSession?getSession();??????返回发生绑定和取消绑定的session的名字。HttpSessionBindingListener接口??????定义\??????public?interface?HttpSessionBindingListener??????这个对象被加入到HTTP的session中,执行这个接口会通告有没有什么对象被绑定到这个HTTP?session中或被从这个HTTP?session中取消绑定。??????方法??????1、valueBound??????public?void?valueBound(HttpSessionBindingEvent?event);??????当一个对象被绑定到session中,调用此方法。HttpSession.putValue方法被调用时,Servlet引擎应该调用此方法。??????2、valueUnbound??????public?void?valueUnbound(HttpSessionBindingEvent?event);??????当一个对象被从session中取消绑定,调用此方法。HttpSession.removeValue方法被调用时,Servlet引擎应该调用此方法。Session的事件处理机制与swing事件处理机制不同。Swing采用注册机制,而session没有;当任一session发生绑定或其他事件时,都会触发HttpSessionBindingEvent?,如果servlet容器中存在HttpSessionBindingListener的实现类

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档