浅谈Session

最近在学java web部分,一开始对Session的整个知识结构比较困惑,查阅一些资料后结合自己的理解做一下整理总结,作为初学者,若理解有误,欢迎指正。

1、Session的概念

  Session代表服务器与浏览器的一次会话过程,是常用的会话跟踪技术。在Servlet当中session就是HttpSession对象。session是一个容器,可以存放会话过程中的任何对象。

2、Session被创建的时机

我一开始和很多人一样以为一旦客户端访问就会生成session对象,后看发现其实Session的创建时机分为以下两种:

 1)在Servlet中调用getSession()方法:

   HttpSession session = request.getSession();

或者

   HttpSession session = request.getSession(true);

 2JSP页面默认<%@page  session=”true”%>

  如果不显示地在jsp页面上指定SP页面默认<%@page  session=”false”%>那么在JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);那么session对象就会被创建。

  一般JSP页面没有显式禁止session,在打开浏览器第一次请求该jsp的时候,服务器会自动为其创建一个session对象,因为session会消耗内存资源,所以在不打算使用session时,应该在所有的JSP中使用<%@page  session=”false”%>将其关闭。

3、Session ID

  当session对象创建的时候,同时也会为该对象分配一个唯一的标识符Session ID,当客户端之后对服务器再发送HTTP请求的时候,服务器先从HttpServletRequest对象中读取Session ID,找到之前创建的sesion对象。

  Session IDcookie的形式保存在浏览器端。  这样在交互过程中浏览器可以自动的按照规则把Session ID发送给服务器。

4、Session删除的时间:

1Session超时:超时指的是连续一定时间服务器没有收到该session所对应客户端的请求,并且这个时间超过了服务器设置的session超时的最大时间。服务器会将该session对象清除;

2)程序调用HttpSession.invalidate();

3)服务器关闭或服务停止;

需要注意的是session不会因为浏览器的关闭而删除。

session的创建和使用都是在服务端,而浏览器从来都没得到过session对象。但浏览器可以请求Servlet或者JSP来获取session中保存的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值