cookie与session

Cookie

1.cookie是有由服务器生成以响应(response)方式发送并保存在客户端的信息载体,客户端进行同类访问的时候。请求(request)中可获取cookie。在这里插入图片描述
同类请求:资源路径相同

2.下图的默认路径为servlet资源路径
在这里插入图片描述
3.资源路径相同的访问可以获取cookie并进行操作
在这里插入图片描述

Session(域)

1.
在这里插入图片描述
2.getsession方法:

getsession无参-创建时用:从请求中获取服务器的session,没有则创建
getsession有参(create)-获取时用:从请求中获取服务器的session,没有且create为true则创建

3.session是跨请求的,一次会话中互通的。(注意区分):
在这里插入图片描述request.getattribute和session.getattribute有什么区别?
(1).request的Attribute是一次请求里的参数,仅属于当前请求;

(2).session的Attribute是一个会话里的参数,也就是页copy面没有关闭前或者页面关闭后session超时你所有请求保存的参数

(3).application的Attribute是服务端的参数,也就是服务器关闭前,所有请求保存的参数

(4).所以一般情况application(servletcontext)>session>request 也就是说后者能拿到的通常前者都能拿到。

4.session原理:(基于cookie)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.session的失效

1.session失效后不为null,但无数据
2.所谓的安全退出,其实就是session的实效
在这里插入图片描述

cookie的禁用

1.客户端禁用cookie后,每次请求服务器都会生成一个32位的JSESSIONID,生成一个httpsession,组成map的一个entry,并将JSESSIONID存在cookie中并发送给客户端,但响应中接收不到cookie,所以认为是第一次访问,又再来一次。

2.禁用后跟踪会话方法:在资源名称后+;+jsessionid=…(此方法也可以用来跨会话传参数)

3.禁用后重定向:重定向的uri(资源路径)用response.encodeRedirectURL(uri)处理后,在资源名称后自动加上;+jsessionid=…(禁不禁都能用,但是不安全)

4.禁用后非重定向:非重定向的uri(资源路径的超链接)用response.encodeURL(uri)处理后,在资源名称后自动加上;+jsessionid=…

5.禁言cookie可能导致大部分网站打不开,客户端会拒绝接受cookie
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值