Session与Cookie
四种属性范围
在JSP中提供了4种属性的保存范围。所谓的属性保存范围,指的是一个内置的对象,可以在多少个页面中保存并继续使用。4种属性的范围如下:
Page:只在一个页面中保存属性,跳转之后无效。
Request:只在一次请求中保存属性,服务器端跳转后仍然有效,客户端跳转后无效。
Session:在一个会话范围内有效,无论何种跳转都有用,但开启新的浏览器后,无法使用。
Application:在整个服务器中保存,所有用户都可以使用。
Session与coolie
Session翻译成中文为“会话”,指的是从打开浏览器并连接到一个服务器开始到关闭浏览器断开连接的过程。在这个过程中,客户机被允许临时在服务器上有一块属于自己的内存空间。
服务器要为每一个用户分配各自的内存空间而不发生冲突,这就要考sessionID的帮助。sessionID是服务器为区分每一个不同的客户端连接而分配给客户端的ID。但是,对于浏览器来说,每次从服务器中取得所要显示的内容后,物理连接实际上是关闭了,那么浏览器再次请求服务器的时候,服务器是如何辨别他的sessionID的呢?
这就要用到cookie。Cookie实际上是浏览器为每一个连接在本地分配的空间,更准确一点说是浏览器为每一个链接在本地生成的文件。但浏览器第一次访问服务器时,服务器为该链接分配一个唯一的sessionID;当再次访问服务器时,就从cookie中取得对应的sessionID;当关闭浏览器时,对应的cookie中的sessionID立即失效。
简单地比较:
| 保存位置 | 常见用途 |
session | 服务器 | 保存各个内置对象的属性 |
cookie | 客户端浏览器 | 保存一些用户的基本信息,如用户名、密码等。 |