首先引入会话的概念
会话:一个浏览器客户端和web服务器连续发生的一系列请求和响应的过程。一次会话中包含多次请求和响应。
简单来说:用户开一个浏览器,访问网站资源,查看信息,最后关闭浏览器。这个过程称为一次会话。
会话的目的:在一次会话的范围内的多次请求间共享数据
会话分为:
- 客户端会话:cookie
- 服务端会话:session
cookie
使用方法
1.新建一个cookie对象(新建时两个参数一个是键,一个是值)
Cookie cookie = new Cookie(name, value);
2.把cookie对象放到response中(可以一次发送多个cookie对象,多次调用此方法即可)
response.addCookie(cookie);
3.接收值(这个方法会获取cookie里的所有值)
Cookie[] cookies = request.getCookies();
4.使用
cookies[0].getValue()
Cookie在浏览器的保存时长
默认情况下,当浏览器关闭后Cookie数据被销毁
可以方法设置Cookie,使其持久化存储
setMaxAge(int seconds)
其中参数意义
- 正数:将Cookie数据写到硬盘文件中,数值大小表示了Cookie存活时间(单位秒)
- 负数:默认值
- 零:删除Cookie数据
Cookie的特点
浏览器对于单个Cookie大小有限制,且对于同一域名下的总Cookie数量也有限制(20个)
他的特点决定了Cookie一半用于存储少量不太敏感的数据
Session
使用方法
1.获取Session对象
HttpSession session = request.getSession();
2.使用Session对象
//获取session值
session.getAttribute(String name);
//设置session值
session.setAttribute(String name, Object value);
//移除session值
session.removeAttribute(String name);
Session特点
- Session用于存储一次会话的多次请求的数据,存储在服务器端
- Session可以存储任意类型,任意大小的数据
Session与Cookie的区别
- Session存储数据在服务器端,Cookie在客户端
- Session没有数据大小限制,Cookie有
- Session数据安全,Cookie相对不安全
- Session对象由服务器创建