目录
1.4.4 page 作用域与 pageContext 对象
关键步骤如下。
- 使用 session 对象实现数据的保存和读取。
- 使用 Cookie 实现数据的保存和读取。
- 使用 application 对象实现数据的保存和读取。
1.4.1 理解会话
1.会话的概念
会话据说用户通过浏览器与服务器之间进行的一次通话,它可以包含浏览器与
服务器之间的多次请求、响应过程。简单地说就是在一段时间内,单个客户端与Web 服务
器的一连串相关的交换过程。
在一个会话中,客户端可能会多次请求访问一个网页,也有可能请求访问各种不同
的服务器资源。
图 1.13 描述了浏览器与服务器的一次会话过程。当用户向服务器发出第一次请求时,
服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束(浏览器关闭可以
借宿会话)。
图1.13 一次会话过程
JSP 提供了一个可以在多个请求之间持续有效的会话对象 session,session 对象允许
用户存储和提取会话状态的信息。接下来,我们就来学习 JSP 内置对象 session.
2.session 对象
(1)session 对象
session 一词的原意是指有始有终的一系列动作,在实际应用中通常翻译成会话。
例如,打电话时,甲方拿起电话拨通乙方电话这一系列的过程就可以称为一个会话,电
话挂断时会话结束。
(2)session 的工作方式
session 机制是一种服务器端的机制,在服务器端保存信息。当程序接收了客户端
的请求时,服务器首先会检查是否已经为这个客户端创建了 session 。判断session 是否
创建是通过一个唯一的标识 "sessionid" 来实现的。如果在客户端请求中包含了一个
sessionid ,则说明在此前已经为客户端创建 了session,服务器就会根据这个 sessionid
将对应的 session 读取出来。否则,就会重新创建一个新的 session ,并生成一个与
此 session 对应的 sessiond ,然后将 sessiond 在首次响应过程中返回到客户端保存。
(3)使用 session 实现数据的存储与读取
使用 session 进行数据保存时,需要调用相应的方法。session 对象常用的方法如
表 1-7 所示。
方法 | 返回值类型 | 说明 |
---|---|---|
setAttribute(String key,Object value) | void | 以 key-value 的形式保存对象值 |
getAttribute(String key) | Object | 通过 key 获取对象值 |
getId | String | 获取 sessionid |
invalidate() | void | 设置 session 对象失效 |
setMaxInactiveInterval(int interval) | void | 设置 session 的有效期 |
removeAttribute(String key) | void | 移除 session 中的属性 |
使用 session 保存数据。
session.setAttribute(String key,Object value);
从 session 中读取数据。
Object value = session.getAttribute(Strin