Servlet : Session技术

1 基本概念

  <1> Session本意为"会话"的含义,是用来维护一个客户端和服务器关联的一种技术

  <2> 浏览器访问服务器时,服务器会为每一个浏览器都在服务器端的内存中分配一个空间,用于创建一 个Session对象,该对象有一个id属性且该值唯一,我们称为SessionId,并且服务器会将这个 SessionId以Cookie方式发送给浏览器存储

  <3> 浏览器再次访问服务器时,会将SessionId发送给服务器,服务器可以依据SessionId查找相对应的 Session对象

 

2 相关的方法

  使用javax.servlet.http.HttpServletRequest接口的成员方法,实现Session的获取

方法声明 功能介绍
HttpSession getSession() 返回此请求关联的当前Session,若此请求没有则创建一个

 

  使用javax.servlet.http.HttpSession接口的成员方法,实现判断和获取

方法声明 功能介绍
boolean isNew() 判断是否为新创建的Session
String getId() 获取Session的编号

 

  使用javax.servlet.http.HttpSession接口的成员方法,实现属性的管理

方法声明 功能介绍
Object getAttribute(String name) 返回在此会话中用指定名称绑定的对象,如果没有对象在 该名称下绑定,则返回空值
void setAttribute(String name, Object value) 使用指定的名称,将对象绑定到此会话
void removeAttribute(String name) 从此会话中删除与指定名称绑定的对象

 

3 Session的生命周期

  为了节省服务器内存空间资源,服务器会将空闲时间过长的Session对象自动清除掉,服务器默认 的超时限制一般是30分钟

  使用javax.servlet.http.HttpSession接口的成员方法实现,失效实现的获取和设置

方法声明 功能介绍
int getMaxInactiveInterval() 获取失效时间
void setMaxInactiveInterval(int interval) 设置失效时间

 

可以配置web.xml文件修改失效时间

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

 

4 Session的特点

  数据比较安全

  能够保存的数据类型丰富,而Cookie只能保存字符串

  能够保存更多的数据,而Cookie大约保存4KB

  数据保存在服务器端,会占用服务器的内存空间,如果存储信息过多、用户量过大,会严重影响服务 器的性能

 

5 练习

 

 

 

 

 

posted @ 2021-09-14 20:20  Jasper2003  阅读(29)  评论(0编辑  收藏  举报