Request域、ServletContext域、pageContext域、Cookie域、Session域的区别是什么?

Request域、ServletContext域、pageContext域、Cookie域、Session域的区别是什么?

request域:表示的是一次请求范围内。

​ 如果说,我要去购买一件上衣向服务器发送一个购买请求,它返回给我一个购买成功的响应;当我再去购买一个裤子的时候就相当于又一个请求,那么这时候用转发的话当然就不行了,如果用重定向的话可以解决这个问题,只不过比较麻烦。然后把里面所购买的上衣的数据从request域拿出来和第二个请求拼接在一起在存入request域中。

但是当我要去结算的,就是在另一个Servlet中,这个时候我的request域中的数据就会全部丢失。具体如下图所示:

img

ServletContext域和pageContext域:

这两个域在我看来没有本质上的区别,可以理解为服务器端的共享空间。只不过说,ServletContext域表示的是整个web服务,而pageContext域表示的是一次请求。

如果说,我要购买一件上衣,向服务器发送一个请求,服务器返回给我一个购买成功的请求 ,同样的再去购买一条裤子也是一样的。看来一切都是正常的,结算也可以去结算界面结算我的总金额。

但是,我要说的是,因为这是一个购物界面,所以就不会只是你一个用户。因为这是一个服务器端的共享空间,所以当别人也去购买东西添加购物车后,你去结算的时候就包括自己和别人共同的东西。具体如下图所示:

img

Cookie域:

Cookie域就是所谓的会话技术,或者说是客户端技术。

同样去买一件上衣,这个时候就会把上衣这个对象存入的开辟的Cookie空间中, Cookie空间为此对象绑定一个唯一的标识然后以响应头方式返回给客户端,当再去购买裤子的时候会带着这个唯一标识以请求头的方式存入到Cookie空间中,同时为它绑定唯一的标识。因为Cookie域保存在自己浏览器内部,与别人互不干扰,但因为是客户端技术,所以安全性不高。具体如下图所示:

img

Session域

Session域就是另一种会话技术,也叫做服务器端技术。Session的底层也是基于Cookie的,只不过有自己的改变。

和Cookie一样,去买一件上衣,这个时候就会把上衣这个对象存入的开辟的Session空间中, Session空间为此对象生成一个唯一的Key值,当再去购买裤子的时候会带着这个唯一的Key值存入到Cookie空间中,同时为它绑定唯一的Key值。因为Session域同样保存在自己浏览器内部,与别人互不干扰,它相较于Cookie而言是服务器技术,较安全。具体如下图所示:

img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值