`
aak86aak
  • 浏览: 25648 次
社区版块
存档分类
最新评论

监听HTTP会话

 
阅读更多

监听HTTP会话
2011年09月01日
     监听HTTp会话是利用Servlet监听程序。结合监听技术,来讨论获得当前平台中用户总数的方法。 
  在Web应用中,可以监听HTTP会话活动情况、HTTP会话中属性的设置情况,也可以监听HTTP会话的active、passivate情况等 
  可以通过HttpSessionListener接口监听HTTP会话创建、销毁的信息;通过HttpSessionActivationListener监听HTTP会话的active、passivate情况;通过HttpSessionBindingListener监听HTTP会话中对象的绑定信息;通过HttpSessionAttributeListener监听HTTP会话中属性的设置请求。 
  下面看个实例 
  package com.test.ch9; import java.util.Hashtable; import java.util.Iterator; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class SessionListener implements HttpSessionListener{ //集合对象,保存session对象的引用 static Hashtable ht=new Hashtable(); //实现HttpSessionListener接口,完成session创建事件控制 public void sessionCreated(HttpSessionEvent arg0){ HttpSession session=arg0.getSession(); ht.put(session.getId(),session); System.out.println("create session:"+session.getId()); } //实现HttpSessionListener接口,完成session销毁事件控制 public void sessionDestroyed(HttpSessionEvent arg0){ HttpSession session=arg0.getSession(); System.out.println("destory session:"+session.getId()); ht.remove(session.getId()); } // 返回全部session对象集合 static public Iterator getSet(){ return ht.values().iterator(); } //依据session id返回指定的session对象 static public HttpSession getSession(String sessionId){ return (HttpSession)ht.get(sessionId); } } 
  该实例中,SessionListener实现了HttpSessionListener接口。SessionListener类还有一个属性,就是Hashtable用来保存所有的登录信息。当创建一个Session时,就调用sessionCreate()方法将登陆会话信息保存到Hashtable中;当销毁有关Session时,就调用sessionDestroyed()方法将登陆会话信息从Hashtable中移除,这样就实现了管理在线用户登录会话信息的目的。 
  我们还需要几个页面程序来测试这个监听器的工作并且深入体会下Session的会话管理机制。 
  测试程序如下: 
      会话管理   会话管理实例    名称:    事件:      提交 重置       
  当访问index.jsp时会出现一个类似登录框的会话描述页面,输入会话描述后进入display.jsp显示刚才输入的会话信息。 
  例如 
      会话控制显示   "); out.println("thing:"+session.getAttribute("thing") +"
"); out.println("session id:"+session.getId()+"
"); out.println("create time:"+session.getCreateTime()); %>    管理 注销      
  单击管理会进入会话关联页面(session.jsp)单击“注销”会进入会话注销页面(logout.jsp)是HTTP会话无效, 
  例如:会话关联的程序 
       Manager session JSP   会话管理
   会话Id 用户名 事件 创建时间 操作  "); out.println(""+session1.getId()+"") out.println(""+session1.getAttribute("name")+""); out.println(""+session1.getAttribute("thing")+"") out.println(""+session1.getCreationTime()+"") ; %> '>销毁 "); System.out.println("sessionId"+session1.getId()); } catch(Exception ex){ ex.printStackTrace(); return; } } %>    
  注销会话的程序(logout.jsp) 
      会话控制      
  如果单击“销毁”,则可以强制将会话信息移除如下 
       LL JSP      
  最后将监听器部署到web.xml中去。如下 
    com.test.ch9.SessionListener   
  
  
分享到:
评论

相关推荐

    Socket TCP协议的服务类(20110304修正)

    /// 监听客户端连接的线程,监听所有客户端的链接创建并分配会话。 /// 会话遍历线程,遍历会话列表,清理会话超时,客户端断开连接的会话。遍历循环每次Sleep(600). /// 注: 整个代码未经过严格测试!仅供参考! ...

    login-with-ssh, 使用 SSH http验证web会话的实验.zip

    login-with-ssh, 使用 SSH http验证web会话的实验 使用SSH登录的这里是演示。这是一个简单的通过SSH验证网络会话的实验。 这样做可以为你提供完全分散的。无密码的认证 !工作原理定制的SSH服务器监听连接。 它不是...

    js实现无刷新监听URL的变化示例代码详解

    http://xxxx/#edit 通过history改变路由 history.back(): 返回浏览器会话历史中的上一页,跟浏览器的回退按钮功能相同 history.forward():指向浏览器会话历史中的下一页,跟浏览器的前进按钮相同 history.go(): ...

    TcpServer 服务类

    /// 监听客户端连接的线程,监听所有客户端的链接创建并分配会话。 /// 会话遍历线程,遍历会话列表,清理会话超时,客户端断开连接的会话。遍历循环每次Sleep(600). /// 注: 整个代码未经过严格测试!仅供参考! ...

    Python抓包程序mitmproxy安装和使用过程图解

    一、介绍说明 ... mitmproxy还有两个关联组件。一个是mitmdump,它是mitmproxy的命令行接口,利用它...2、保存HTTP会话并进行分析 3、模拟客户端发起请求,模拟服务器端返回响应 4、利用反向代理将流量转发给指定的服务器

    Session Cookie的HttpOnly和secure属性

    当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。...

    基于YMP框架实现的简单HTTP请求透传代理模块.rar

    并针对Serv服务端提供会话管理器,用于管理已连接的TCP或UDP客户端会话以及对会话空闲检测、流量监听等; 新版本已提交至Maven中央库,可以通过以下配置获取各模块依赖: net.ymate.platform ymate-platform- ...

    C++开发基于TCPsocket实现的web服务器源码.zip

    5、从session中取出会话,接收并按照http协议分析客户端的请求报文,根据其提供的路径寻找相应的文件; 6、如果找到文件的话就将文件拟为报文形式,基于TCP协议传输到客户端,如果文件过大,则采用分片传送的方式;...

    网络安全协议(PPT-146页).pptx

    浏览某个网站,这就是一次HTTP会话。 12 会话劫持(Session Hijack),就是在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行监听,甚至可以是...

    判断用户是否在线和实时统计在线人数

    本文件好有两个例子,是为了方便下载人员的理解。运用了HTTP会话的监听来实现,还有利用了vector对象的elements()方法。

    javaweb详细笔记,绝对详细(内含代码)

    会话技术Cookie&Session; 55 动态页面技术(JSP/EL/JSTL) 59 javaEE的开发模式 65 事务(JDBC) 67 Json数据格式(重要) 70 Js原生Ajax和Jquery的Ajax 71 监听器Listener 74 邮箱服务器 79 过滤器Filter

    Head First Servlet JSP(清晰中文版).part4

    5 作为Web应用:属性和监听者 6 会话状态:bean/实体同步 7 作为JSP:编写JSP代码 8 无脚本的页面:编写代元脚本JSP 9 强大的定制标记:使用JSTL 10 JSRL也有力不能及的时候:定制标记开发 11 部署Web应用:...

    Head First Servlet JSP(清晰中文版).part2

    5 作为Web应用:属性和监听者 6 会话状态:bean/实体同步 7 作为JSP:编写JSP代码 8 无脚本的页面:编写代元脚本JSP 9 强大的定制标记:使用JSTL 10 JSRL也有力不能及的时候:定制标记开发 11 部署Web应用:...

    Head First Servlet JSP(清晰中文版).part3

    5 作为Web应用:属性和监听者 6 会话状态:bean/实体同步 7 作为JSP:编写JSP代码 8 无脚本的页面:编写代元脚本JSP 9 强大的定制标记:使用JSTL 10 JSRL也有力不能及的时候:定制标记开发 11 部署Web应用:...

    Head First Servlet JSP(清晰中文版).part1

    5 作为Web应用:属性和监听者 6 会话状态:bean/实体同步 7 作为JSP:编写JSP代码 8 无脚本的页面:编写代元脚本JSP 9 强大的定制标记:使用JSTL 10 JSRL也有力不能及的时候:定制标记开发 11 部署Web应用:...

    iscsi协议及实现

    会话由会话号区分,会话号包括启动设备部分和目标设备部分 会话中包含的TCP连接可以增加也可以删除,这些连接由连接号(CID)区分 命令编号 从启动设备到目标设备SCSI层的命令由iSCSI编号,该号码由iSCSI协议数据...

    javaweb课程设计基础知识+教程+课件

    ---_04会话管理.ppt ---_CORE核心标签.doc ---EL表达式ppt ---javabean.ppt ---JavaMail.ppt ---JavaMail课件,ppt ---Jdbc1.ppt ---Jdbc2.ppt ---Jdbc3.ppt ---jsp.ppt ---_事件监听器.ppt ---_国际化11.ppt --- ...

    免费超全面的Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结

    java基础 一、仓库说明 Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结。 2、分类文档 ...会话跟踪技术,Session和Cookie详解 过滤器、监听器、拦截器,应用详解 Servlet 集成 C3P0

    Web程序设计课堂笔记.doc

    1.Tomcat和HTTP协议 2.Servlet基础 3.HttpServletRequest请求对象 4.JSP技术和会话跟踪 5.JSTL和EL表达式 6.过滤器 7.监听器 8.JDBC 9.文件上传和下载 10.JSP的开发模型——MVC设计架构

    Gh0st Rat BetaV3.6源码+程序(去硬盘锁).7z

    语音监听 监听远程语音,同时也可以把本地语音传送给远程,进行语音聊天,GSM610压缩方式,传输流畅 会话管理 注销,重启,关机,卸载服务端 其它功能 下载执行指定URL中的程序,隐藏或者显示访问指定网址,清除系统日志...

Global site tag (gtag.js) - Google Analytics