cookie与session的区别

例如在会话的过程中,需要记住用用户购买的商品,且在用户结账的时候,可以记下购买的商品,并且进行结账.

 在会话过程中就必要要解决这个问题.那么其中就必须要掌握cookie 和session


我们可以通过servlet技术来保存数据

     ServletContext,request   ;这个可以保存数据但是数据只是在一次存储中用到,显然和我们要解决的问题是不可以的


引进:Cookie 和session 技术,这两个技术都是用来 保存 用户购买商品信息的据说(这是她最常用到的地方)

//下面以购买商品这个为例子进行讲解

Cookie技术

    Cookie 是一个 基于客户端的技术 ,她是将 用户购买的商品信息 保存在用户自己的 浏览器中,那么只要用户购买了就会保存下来,

只有在最终用户 点击结账(即提交到服务器里头去) 时候 ,这样就这可以结账了

cookie之细枝末节:

一个cookie 只能标识一种信息; 每个cookie 至少 含有 一个标识该信息的名称(NAME) 和 设置值(VALUE);
    且 name 信息是 cookie的 唯一 具有识别的,换句话说 你想找到这个cookie 那么就找这个name值;
一个 WEB站点 ,一次可以给 WEB浏览器 传递多个Cookie;一个 web浏览器 也可以存储多个 WEB站点 传递过来的Cookie;
一个 浏览器 最多可以存放300个cookie,一个 站点 最多可以发送 20个cookie; 且每个传送的cookie的大小限制为4KB;
如果创建一个cookie,将她发送到浏览器,那么她默认是一个会话级别的(即存储在浏览器里头),当用户关掉浏览器时,她就给释放了,要是想永久存放(即将浏览器里的cookie存放到磁盘里头),那么需要用到maxAge技术,并且这里要传入一个以毫秒为单位的时间.(既然将到了设置永久cookie,那么问题来了怎么删除永久cookie呢??)
  删除永久cookie:将cookie的最大失效设置为0,注意了,删除cookie时,path必须一致,否则就无法删除.



Session是一个 基于服务器的技术 ,她是直接将购买的商品直接保存到服务器端 , 针对用户的浏览器不同而不同(这是因为 每次session对有做一个id),

当用户点击结账的时候, 此时根据浏览器的信息(即session的生成ID) ,浏览器带过来的信息 ,再再找到 购买的商品,从给用户结账



session的创建: 

request.getSession();这个创建的方法自己在创建是会做一个判断,判断这个session是否在当前的浏览器中已将创建过的session对象; 要是已将存在,那么她这里的对象就是session对象的引用;

实现session域的数据共享:获得session对象后,再通过调用session的api-----setAttribute(),getAttribute(),removeAttribute()


注意,不同的浏览器,创建的session对象是不同;这是因为 在访问的时候,回写的 响应中靠session的id号来实现,在下次访问的时候,找到对应的session对象.


     session的原理到底是怎么样的呢?
首先通过回写cookie对象实现 name=value     jsessionid=session的id号 ;
     
     在关闭浏览器之后,实现再次打开浏览器时,任可以找到 之前的 session对象?
        通过 设置cookie的有效期


        通过上面的操作可以关闭了浏览器后,还可以找到session对象;  


    
    要是浏览器禁用了cookie,要怎么获得session对象呢?
           通过url重写的方法实现,在url地址后拼接上  jsessionid=session的id号 




总结
cookie和session 都可以存放数据,她们有什么区别呢?
     cookie是将用户的数据写到用户自己的浏览器中;
     session是将用户的数据写到用户独占的session中(服务器端);
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值