java之会话技术(Cookie&Session)

首先,什么是会话:从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,我们称为一次会话。而会话技术就是记录这次会话中客户端的状态和数据的。
会话技术分为:Cookie和Session。
Cookie:Cookie技术是将数据存储到客户端的技术,减少了服务器端的存储压力,但是安全性不好,客户端可以手动清除cookie.
Session:Session技术是将数据存储在服务器端的技术,安全性相对好,但是增加了服务器的压力。Session会为每个客户端都创建一块内存空间来存储客户的数据,但是客户端每次都携带一个标识ID去服务器中寻找属于自己的内存空间。因此,Session的实现是基于Cookie,Session需要借助于Cookie存储客户的唯一标识JSESSIONID。
Cookie技术
一、服务器端向客户端发送Cookie
1.1、创建cookie

Cookie cookie=new Cookie(name,value);

1.2、设置持久化时间

cookie.setMaxAge(int second);

为什么设置持久化时间?如果不设置持久化时间,cookie存储在浏览器的内存中,当浏览器关闭,cookie信息就会销毁,但是如果设置持久化时间,cookie信息就会存储在浏览器中,直到过了设置的持久化时间后,才会删除信息。
1.3、设置cookie的携带路径

cookie.setPath(String path);

为什么设置携带路径?如果不设置携带路径,那么,该cookie信息会访问产生该cookie的web资源所在路径都携带cookie信息。
1.4、向客户端发送cookie

response.addCppkie(Cookie cookie);

1.5、删除cookie
删除客户端存在的cookie信息,使用同名同路径的持久化时间为0的cookie进行覆盖即可。
二、服务器端接收客户端携带的cookie
通过request获得所有的cookie.

Cookie[] cookies=request.getCookies();

Session
获得Session对象:

HttpSession session=request.getSession();

向session中存取数据
Session是村塾数据的区域对象

session.setAttribute(String name,Object obj);
session.getAttribute(String name);
session.removeAttribute(String name);

Session作用范围:默认在一次会话中,也就是在一次会话中,任何资源公用一个session对象。
Session对象的生命周期?
创建:第一次执行request.getSession()时创建
销毁:三种方式:
1、服务器非正常关闭;
2、sessio过期/失效(默认30分钟)也就是从不操作服务器端的资源开始计时,30分钟后销毁。是否可以修改时间?web.xml可以配置

<session-config>
	<session-timeout>5</session-timeout>//五分钟后自动销毁
</session-config>

3、手动销毁session

session.invalidate();

浏览器关闭,session是否就销毁?
不会立马销毁,存在于浏览器上的唯一标识符JSESSIONID消失了,但是服务器中存在的JSESSIONID没有消失,关闭的只是客户端,如果销毁,就需要等到销毁时间到了才会销毁。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值