session和cookie

一、cookie
1、属性:
name:名称不能唯一确定一个Cookie。路径可能不同。
value:不能存中文。
path:默认值是写Cookie的那个程序的访问路径
比如:http://localhost:8080/day10_00_cookie/servlet/ck1写的Cookie
path就是:/day10_00_cookie/servlet 看当前创建cookie的资源(servlet)文件路径
客户端在访问服务器另外资源时,根据访问的路径来决定是否带着Cookie到服务器
当前访问的路径如果是以cookie的path开头的路径,浏览器就带。否则不带。

maxAge:cookie的缓存时间。默认是-1(默认存在浏览器的内存中)。单位是秒。
负数:cookie的数据存在浏览器缓存中
0:删除。路径要保持一致,否则可能删错人。
正数:缓存(持久化到磁盘上)的时间
二、session
1、为什么要学HttpSession?
它也是一个域对象: session servletContext request
同一个会话下,可以使一个应用的多个资源共享数据
cookie客户端(由服务器端产生通过response发送到浏览器,客户端存储在内存中)技术,只能存字符串。HttpSession服务器端的技术,它可以存对象。
session依赖cookie,cookie中存放了session的唯一标识jsessionid

2、常用方法
把数据保存在HttpSession对象中,该对象也是一个域对象。
void setAttribute(String name,Object value);
Object getAttribute(String name);
void removeAttribute(String name); 只是移除session的某一个值,但是session依然存在
HttpSession.getId():获取sessionid(也是jsessionid)

setMaxInactiveInterval(int interval) 设置session的存活时间
0 就销毁了,这个session就无效了
invalidate() 使此会话无效 超过30 分钟也会去世

3、getSession():内部执行原理
HttpSession request.getSession():内部执行原理
1、获取名称为JSESSIONID的cookie的值。
2、没有这样的cookie,创建一个新的HttpSession对象,分配一个唯一的SessionID,并且向客户端写了一个名字为JSESSIONID=sessionID的cookie
3、有这样的Cookie,获取cookie的值(即HttpSession对象的值),从服务器的内存中根据ID找那个HttpSession对象:
找到了:取出继续为你服务。
找不到:从2开始。

HttpSession request.getSession(boolean create):
参数:
true:和getSession()功能一样。
false:根据客户端JSESSIONID的cookie的值,找对应的HttpSession对象,找不到返回null(不会创建新的,只是查询)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值