什么是会话?
- 生活中:一次电话.一次取款过程
- Web应用一次会话:一个客户端浏览器与web服务器之间连续发生的一系列请求和相应的过程
什么是会话状态?
- 会话状态是指Web服务器与浏览器在会话过程中产生的状态信息。
什么是Cookie?
引言:浏览购物网站查看不同商品时,系统会自动记录已经浏览过的商品
- Cookie是由服务器生成发送给客户端浏览器的一小段文本信息, 浏览器将其保存成某个目录下的文本文件中.
- Cookie的作用
- 对特定对象(客户)的追踪,如:访问系统次数,最后访问时间,停留时间等
- 统计网页浏览次数
- 记录用户登录信息
- 实现个性化服务,如针对不同的用户偏好展示不同的内容等
- 安全性能
- 容易信息泄露
存放位置:
Win7: C:\%userprofile%/AppData/Roaming/Microsoft/Windows/Cookies
XP: C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files
Cookie的应用
- 导入包
-
<%@page import="javax.servlet.http.Cookie"%>
-
- 创建Cookie
-
Cookie newCookie=new Cookie("parameter", "value");
- parameter:用于代表cookie的名称(key)
- value:用于表示当前key名称所对应的值
-
- 写入Cookie
-
response.addCookie(newCookie)
-
- 读取Cookie
-
request.getCookies()
-
设置Cookie属性的常用方法
类型 | 方法名称 | 说明 |
void | setMaxAge(int expiry) | 设置Cookie的有效期,以秒为单位 |
void | setValue(String value) | 在Cookie创建后,对Cookie进行赋值 |
String | getName() | 获取Cookie的名称 |
String | getValue() | 获取Cookie的值 |
int | getMaxAge() | 获取Cookie的有效时间,以秒为单位 |
用户登录成功后,将用户信息保存到Cookie中,在页面读取Cookie并显示
示例:使用Cookie保存用户名称
什么是JSP的会话
-
一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求、响应过程
JSP内置对象session
- session对象用来存储有关用户会话的所有信息,这些信息保存在服务器端
- session对象常用方法:
类型 | 方法名称 | 说明 |
void | setAttribute(String key,Object value) | 以key/value的形式保存对象值 |
Object | getAttribute(String key) | 通过key获取对象值 |
String | getId() | 获取session对象的编号 |
void | invalidate() | 设置session对象失效 |
使用session实现访问控制
- 在控制页面获取用户请求的登录信息进行验证
在session中存放用户登录信息
如果session中不存在该用户的登录信息,转入登录页面
Cookie与session的比较
- session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
- session中保存的是对象,Cookie保存的是字符串
- session随会话结束而关闭,Cookie可以长期保存在客户端
- Cookie通常用于保存不重要的用户信息,重要的信息使用session保存
JSP内置对象的范围
- 对象的范围
- 范围决定了JSP是否可以进行对象访问
- 范围的分类
名称 | 说明 |
page范围 | 在一个页面范围内有效,通过pageContext对象访问该范围内的对象 |
request范围 | 在一个服务器请求范围内有效,与客户端请求绑定一起 |
session范围 | 在一次会话范围内容有效,在会话期间与session绑定的对象皆属于该范围 |
application范围 | 在一个应用服务器范围内有效,当应用服务启动后即创建该对象,并向所有用户所共享 |
内置对象
名称 | 作用域范围 | 说明 |
page | 单一JSP页面的范围 | 只能在创建对象的页面内访问,在服务器跳转后失效 pageContext.setAttribute(“name”,value);pageContext.getAttribute(“name”); |
request | 一次请求范围有效 | 页面跳转后,设置的内容依然被保,request.setAttribute(“name”,value);request.getAttribute(“name”); |
session | 一次会话有效期内 | 重定向后,也可以访问,关闭浏览器失效session.setAttribute(“name”,value);session.getAttribute(“name”); |
application | 整个web应用程序的生命周期内 | 关闭浏览器,重新打开,也可以访问到 |
总结
- 会话跟踪技术
- cookie和session的区别
- cookie是在客户端保存信息,session是在服务器保存信息
- cookie中只能保存字符串,session中可以保存任何对象
- 保存在session中的信息,当浏览器关闭后即失效,保存在cookie中的信息可以长期存在
- 因为用户可以删除cookie,所示一般在cookie中保存一些不重要的信息,重要的信息保存在session中
- 对象的四种作用域范围
- page、request、session和application