谈Servlet的Cookie对象的详情

谈Servlet的Cookie对象的详情,第1张

谈Servlet的Cookie对象的详情 1.cookie的作用:

     维护客户端浏览器与服务端的会话状态的一个对象。由于HTTP协议是一个无状态的协议,所以服务端并不会记录客户端浏览器的访问状态,但是有时候我们是需要服务端来记录客户端浏览器的访问状态的,这个时候就需要用到会话状态的维持。以上是官方回答,简单点来说就是cookie对象是基于域名来记录,所以该对象就是用来记录客户端有没有访问过该域名。举个例子来说,假如这里有一家饭店举行开业活动,凡是来吃饭的顾客消费满1000元即送大礼包一个,可以累计消费,当客人第一次来消费没满1000元,那么饭店会送给客人一张卡片,记录该客人此次消费的金额,当客人下次消费的时候,发现卡片上累计消费达到1000元即获取大礼包。该例中客人就相当于客户端浏览器,饭店就是服务器,而卡片就是cookie对象(所以cookie是有服务端创建,发送给客户端)。

2.cookie对象的特点:

(1)cookie对象中只能使用字符串来存储数据  (2)cookie对象中存储数据使用键值对结构存储

(3)cookie对象中存储数据有大小限制     (4)cookie存储数据中不支持中文,但Servlet4.0后支持

  (5)  cookie对象分为状态cookie和持久化cookie (6)浏览器在保存同一个域名下的cookie的数

量是有限的    (7)浏览器每次请求的时候会把与这次请求域名相关的cookie都放在请求中发送给

服务器

3.cookie对象的创建
//创建一个cookie对象
        cookie cookie=new cookie("name","xxxxx");
//用响应对象把cookie对象返回给客户端
        resp.addcookie(cookie);
4.获取cookie对象中的数据

   这里首先说下cookie对象的整个流程,其实当客户端浏览器第一次请求服务端的时候,服务端会创建与这次请求域名相关的cookie对象(可能会很多),然后利用respone响应对象将cookie对象返回给客户端,那么客户端下次在访问该域名的时候,就会把与该域名相关的cookie都放在请求中发送给服务端。所以这里可以根据请求对象中getcookie()方法获取cookie对象,然后在获取cookie对象中的数据。

//在请求中获取cookie对象
        cookie[] cookies = req.getcookies();
for (int i=0;i");
        }

由于请求中会存放很多个cookie对象,所以这里进行遍历每一个cookie对象,获取数据。

5.cookie对象的状态

    cookie对象可以根据状态分为状态cookie和持久化cookie

    状态cookie:客户端会把返回的cookie对象存放在浏览器的内存中,如果浏览器关闭,那么cookie对象也会销毁。

    持久化cookie:客户端会对cookie做持久化处理,基于文件的形式保存在系统的指定目录中。

    cookie对象创建后其实默认为状态cookie,但是可以通过人为修改为持久化cookie,那就是为cookie对象通过setMaxAge()方法设置失效时间,单位为秒,一旦设置了失效时间,那么cookie对象就为持久化了,当时间到达,文件删除。

 cookie cookie=new cookie("first","first");
            cookie.setMaxAge(60);

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5683973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存