史上最全讲解:cookie和session

请求转发(request):一次请求 共享request里的数据(因为是一次请求所以request没有销毁)浏览器地址栏url不变
例子:A找B买东西,把钱给B,B私底下把钱给C让C去买,买完交给B,B再给A,对A来说只知道B买了东西
发送重定向(response): 多次请求 不共享request里的数据(每次请求数据库都会新建request对象 每次的request对象都不一样) 浏览器地址栏url改变
例子:A把钱给B,找B买东西,B说买不了并告诉A说C可以买(相当于响应报文里的location,也就是重定向的地址),A把钱给C让C买,C买完交给给A,对A来说知道是C买东西
cookie浏览器的技术 在服务器声明 存在于浏览器运行内存中 一般默认浏览器关闭即销毁 但是可以设置cookie的有效期 如果设置了有效期后关闭浏览器那么cookie会存在于磁盘中下次打开浏览器还由cookie信息
例子:去理发店理发办一个会员卡填写自己的信息,下次去的时候需要带着会员卡(存在于浏览器中)给理发店即可,不需要重新办理
session:用户访问服务器的时候 生成一个对象来存其相关的信息 并将该对象的编号jsessionID作为cookie中的信息返回并存在浏览器中 下一次访问服务器会cookie里的信息自动存放在request中 寻找对应的session
request.getSession();创建对象并获取对象以及自动为用户创建cookie(tomcat底层封装了这些功能)
服务器tomcat关了则session对象没了,正常关闭的话session对象会序列化到磁盘中下次打开tomcat会自动序列化生成原来的session对象,非正常关闭的话会销毁.默认情况下浏览器关闭后cookie会销毁
第二次访问另外一个servlet 可以理解为另外一个人拿着这个条形码去超市取东西,也能拿到,当然也可以是本人那么就是访问同一个servlet
session默认存储30分钟 一次会话
例子:去超市存东西会有个条形码,东西由顾客提供(request里的信息),而储物柜由超市提供(相当于服务器创建的session对象),超市将条形码交给顾客(服务器将创建cookie对象存放柜子编码通过response交给浏览器),条形码顾客必须带在身上(相当于cookie信息存在于浏览器),第二次去将条形码交给超市就可以取到自己的东西。
如果条形码丢了,那么拿不到相应的东西,超市会再提供一个柜子但是原来的东西已经拿不到了;如果超市的柜子丢了,那么有条形码也拿不到对应的东西,会再重新创建一个柜子交给顾客。两次的柜子都是新的,存放的东西和原来不一样

解决一个用户不用请求的数据共享问题
request请求转发:
一次请求,共享数据,地址栏url不改变
response响应重定向:
两次请求,不共享数据,地址栏url改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值