测试环境:Tomcat 5.0.28
JavaWeb中的Session
- 在JavaWeb中使用HttpSession(以下简称session)对象来表示一个会话。
- Session的创建(代表会话周期的开始):第一次调用request.getSession()方法时,会创建一个session对象。
- Session的销毁(代表会话周期的结束):在某个请求周期内调用了Session.invalidate()方法,此请求周期结束后,session被销毁;或者是session超时后自动销毁。
- 对于JSP,如果指定了<%@ page session="false"%>,则在JSP中无法直接访问内置的session变量,同时也不会主动创建session,因为此时JSP未自动执行request.getSession()操作获取session。
- 在session对象刚创建的第一个请求周期内,调用session.isNew()方法将得到true。
- 可以在web.xml文件中配置session默认的超时时间(分钟):
<session-config>
<session-timeout>10</session-timeout>
</session-config>
也可以调用session. setMaxInactiveInterval()方法设置session超时时间(分钟)
SessionListener
- 通过SessionListenr可以监听session的创建和销毁,步骤:
1.写一个类MySessionListener,实现javax.servlet.http.HttpSessionListener接口及其sessionCreated()、sessionDestroyed()方法
2.在web.xml中配置SessionListener:
<listener>
<listener-class>MySessionListener类全名</listener-class>
</listener>
- 当session 被创建和销毁时,容器会分别调用SessionListener的sessionCreated()方法和sessionDestroyed()方法,这 两个方法中传入了一个参数对象HttpSessionEvent,可以通过此对象的getSession()方法获取session对象。
应用:在线人数统计
importjava.util.HashSet;
importjavax.servlet.ServletContext;
importjavax.servlet.http.HttpSession;
importjavax.servlet.http.HttpSessionEvent;
importjavax.servlet.http.HttpSessionListener;
publicclassMySessionListenerimplementsHttpSessionListener{
publicvoidsessionCreated(HttpSessionEventevent){
HttpSessionsession=event.getSession();
ServletContextapplication=session.getServletContext();
//在application范围由一个HashSet集保存所有的session
HashSetsessions=(HashSet)application.getAttribute("sessions");
if(sessions==null){
sessions=newHashSet();
application.setAttribute("sessions",sessions);
}
//新创建的session均添加到HashSet集中
sessions.add(session);
//可以在别处从application范围中取出sessions集合
// 然后使用sessions.size()获取当前活动的session数,即为“在线人数”
}
publicvoidsessionDestroyed(HttpSessionEventevent){
HttpSessionsession=event.getSession();
ServletContextapplication=session.getServletContext();
HashSetsessions=(HashSet)application.getAttribute("sessions");
//销毁的session均从HashSet集中移除
sessions.remove(session);
}
}
分享到:
相关推荐
JavaWeb 用session统计在线人数
当一个用户登录后,显示欢迎信息,同时显示出当前在线的总人数和用户名单。当一个用户退出登录或者Session超时值发生时,从在线用户名单中删除这个用户,同时将在线的总人数减1。
javaweb用session实现后台管理.rarjavaweb用session实现后台管理.rarvjavaweb用session实现后台管理.rarvjavaweb用session实现后台管理.rarjavaweb用session实现后台管理.rarjavaweb用session实现后台管理.rar
javaweb cookie session
一个基于Session的在线购物车,数据全部存储在Session中,验证码登录,无需数据库,简单易懂
通过javaWeb的Session技术,实现用户登录以后在一段时间内不用再次登录;关闭浏览器,再次打开上次登录页面,仍然处在登录状态。
本篇文章主要介绍了JavaWeb使用Session和Cookie实现登录认证,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
主要介绍了Javaweb实现在线人数统计代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Javaweb监听器实例之统计在线人数,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在javaweb项目中,通过监听session,实现根据sessionid获取session的方法
为了安全起见,session常常用来保存用户的登录信息。...下面这篇文章就来给大家介绍了关于JavaWeb基于Session实现的用户登陆注销的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
借助tcpmon对http协议进行分析,通过用myeclipse来开发servlet和jsp,并且通过浏览器的请求来分析session和cookie之间的关系,以及session的原理。
主要介绍了Javaweb项目session超时解决方案,关于解决方案分类比较明确,内容详细,需要的朋友可以参考下。
本课程系统地讲解了SESSION这个知识点,主要讲解了Session的概念,它是如何产生,如何工作,如何存放和如何消亡的,以及Session在JavaWeb中的体现和操作,在最后用一个小例子来演示了如何通过Servlet来操作Session。...
基于javaweb的电影院在线选座购票网站项目源码.zip基于javaweb的电影院在线选座购票网站项目源码.zip基于javaweb的电影院在线选座购票网站项目源码.zip基于javaweb的电影院在线选座购票网站项目源码.zip基于javaweb...
Cookie的实现原理,Session 的实现原理,会话技术的概述
javaweb实训项目-基于JavaWeb的仿小米在线商城ShoppingMall源码.zip。基于JavaWeb的在线商城项目是我们专业大三上学期期末实训的项目。javaweb实训项目-基于JavaWeb的仿小米在线商城ShoppingMall源码.zip。基于...
基于Javaweb实现医院在线挂号系统基于Javaweb实现医院在线挂号系统基于Javaweb实现医院在线挂号系统基于Javaweb实现医院在线挂号系统基于Javaweb实现医院在线挂号系统基于Javaweb实现医院在线挂号系统基于Javaweb...
通过session监听在线人数,显示实时人数信息。
毕业设计基于JavaWeb技术的在线考试系统设计与实现.docx毕业设计基于JavaWeb技术的在线考试系统设计与实现.docx毕业设计基于JavaWeb技术的在线考试系统设计与实现.docx毕业设计基于JavaWeb技术的在线考试系统设计与...