学习JavaWeb之Session和Cookie(四)

⽤户会话

服务器⽆法识别每⼀次 HTTP请求的出处(不知道来⾃于哪个终端),它只会接受到⼀个请求信号,所以就存在⼀个问题:将⽤户的响应发送给其他⼈,必须有⼀种技术来让服务器知道请求来⾃哪,这就是会话技术。

会话:打开浏览器进⾏操作到关闭浏览器的过程。

实现会话有两种⽅式:
  • Session
  • Cookie

Session

属于同⼀次会话的请求都有⼀个相同的标识符,sessionID

session 常⽤的⽅法:

String getId() 获取 sessionID
void setMaxInactiveInterval(int interval) 设置 session 的失效时间,单位为秒
int getMaxInactiveInterval() 获取当前 session 的失效时间
void invalidate() 设置 session ⽴即失效
void setAttribute(String key,Object value) 通过键值对的形式来存储数据
Object getAttribute(String key) 通过键获取对应的数据
void removeAttribute(String key) 通过键删除对应的数据

Cookie

Cookie 是服务端在 HTTP 响应中附带传给浏览器的⼀个⼩⽂本⽂件,⼀旦浏览器保存了某个 Cookie,
在之后的请求和响应过程中,会将此 Cookie 来回传递,这样就可以通过 Cookie 这个载体完成客户端
和服务端的数据交互。

*创建Cookie

Cookie cookie = new Cookie("name","tom");
response.addCookie(cookie);
  • 读取Cookie
Cookie[] cookies = request.getCookies();
for (Cookie cookie:cookies){
 out.write(cookie.getName()+":"+cookie.getValue()+"<br/>");
}
Cookie 常⽤的⽅法

void setMaxAge(int age) 设置 Cookie 的有效时间,单位为秒
int getMaxAge() 获取 Cookie 的有效时间
String getName() 获取 Cookie 的 name
String getValue() 获取 Cookie 的 value

Session 和 Cookie 的区别

session:

保存在服务器
保存的数据是 Object
会随着会话的结束⽽销毁
保存重要信息
session:setAttribute(“name”,“admin”)
getAttribute(“name”)

⽣命周期:
服务端:只要 WEB 应⽤重启就销毁
客户端:只要浏览器关闭就销毁。
退出登录:session.invalidate()

cookie:

保存在浏览器
保存的数据是 String
可以⻓期保存在浏览器中,⽆会话⽆关
保存不重要信息

存:

response.addCookie(new Cookie(name,“admin”))

取:


Cookie[] cookies = request.getCookies();
for (Cookie cookie:cookies){
 if(cookie.getName().equals("name")){
 out.write("欢迎回来"+cookie.getValue());
 }
}

⽣命周期:
不随服务端的重启⽽销毁
客户端:默认是只要关闭浏览器就销毁,我们通过 setMaxAge()⽅法设置有效期

⼀旦设置了有效期,则不随浏览器的关闭⽽销毁,⽽是由设置的时间来决定。

退出登录:setMaxAge(0)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值