Session会话与cookie

本文介绍了如何使用Session和Cookie来管理会话数据。探讨了Session数据的生命周期,并详细讲解了通过HttpServletResponse添加Cookie的方法,以及如何通过HttpServletRequest获取Cookie数据。

如果请求发生重定向,而又想要传输数据,这时可以使用Session会话来保存数据,一般就是用setAttribute和getAttribute方法了。但就算是这样,只要浏览器关闭了,Session里面的数据也会消失。如果想要保存会话中的数据,以下方法可以做到:

调用HttpServletResponse对象的void addCookie(Cookie cookie)方法

而且调用addCookie方法的时候,如果这个cookie已经存在了,就会删除原有的cookie,然后再末尾添加新的cookie。这个功能在显示查询记录的时候非常有用,因为记录中不会出现重复记录,且记录都是按照时间顺序拍好了(旧记录都删了,新纪录添加到末尾,因此就有了时间顺序),可以参考编程思想里面写cookie的例子(如果写了例子我就删了这个括号,没删等于还没写这个cookie例子)

获取cookie数据:

调用HttpServletRequest对象的Cookie[] getCookies()方法

该方法返回的一个cookie类型数组,包含此浏览器中的所有cookie数据,所以如果要找到想要找的数据,需要在new cookie的时候设置一些特殊符号来作为寻找的判断标识。

关于cookie的介绍

  • Cookie

Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。注意:真的是保存在浏览器中,不同浏览器保存的cookie不共享。
  • HttpSession

Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的HttpSession对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。

首先看Cookie

  • public void setMaxAge(int expiry)
    设置cookie数据的有效时间
    默认值是关闭浏览器就失效
    设置为0是删除该cookie数据,非常有用,因为没有remove方法来删除cookie
  • public Cookie(java.lang.String name, java.lang.String value) 构造函数
    参数:两个都为String,可理解为键值对,即如果第一个参数name重复了,那么后面的值就会覆盖前面的值
  • public void setPath(java.lang.String uri)
    每次添加cookie的时候,都会将数据按照servlet所在的路径来定义存储目录,而访问的时候只能访问该路径下的数据,不能访问上级目录的cookie数据,如图所示,test2中如果添加了cookie数据,test1如果想要获取该数据,是不能做到的。此时我们可以在添加或者获取cookie之前,先设定目录路径,这样就可以按照路径来找到对应的cookie数据了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值