在Web开发中,session对象同样占据极其重要的位置,它是一个非常重要的对象,可以用来判断是否为同一用户,还可以用来记录客户的连接信息等。HTTP协议是一种无状态的协议(不保存连续状态的协议),每次用户请求在接收到服务器的响应后,连接就关闭了,服务器与客户端的连接就断开,因此,如果用户的浏览器还没有关闭又发起请求,那么网站就应该识别出该用户的情况。在这种情况下,session对象就起到了关键作用。session的相关概念为:
会话 | 从用户打开浏览器连接到一个Web应用或者是某个界面,直至关闭浏览器这个过程称为一个会话。其实打开一个浏览器就意味着打开一个会话对象 |
session对象生命周期 | 从用户访问某个页面到关闭浏览器这段时间称为seesion对象的生命周期,也可以说从会话开始到结束这段时间为session对象的生命周期 |
session对象与Cookie对象 | session对象与Cookie对象是一一对应关系。JSP引擎会将创建好的session对象存放在对应的Cookie中 |
二、Session和Cookie的主要区别
- Cookie是把用户的数据写给用户的浏览器。
- Session技术把用户的数据写到用户独占的session中。
- Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。
- Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。
解释session:当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session。
seesion常用方法
void setAttribute(String name,Object value) | 将参数名和参数值存放在session对象中 |
Object getAttribute(String name) | 返回session中与指定参数绑定的对象,如果不存在就返回null |
Enumeration getAttribute() | 一个用户一个线程,从而保证多个用户单击同一页面时session对象的唯一性 |
String getId() | 获取session对象的ID值 |
void removeAttribute(String name) | 移除session中指定名称的参数 |
long getCreationTime() | 获取对象创建的时间,返回结果是long型的毫秒数 |
int getMaxInactiveInterval() | 获取session对象的有效时间 |
void setMaxInactiveInterval() | 设置session对象的有效时间 |
boolean isNew() | 用于判断是否为一个新的客户端 |
void invalidate() | 使session对象不合法,即失效 |