cookie

cookie 的大小限制

   一个网页一次只能保存20 个 Cookie信息,而一个浏览器只能保存300个Cookie信息,每次信息的大小不超过4kb

上面是Cookie的大小限制,下面讲讲什么是Cookie,Cookie 有什么作用

     我们在打开一个浏览器去访问页面的时候,访问完成之后会将浏览器关闭,这个过程就是一次会话。

常见的会话管理

     Cookie : 将数据保存到客户端的浏览器

      Session : 将数据保存到服务器

使用会话管理的原因:

     将数据保存到会话中,然后带着数据去发送数据,

刚才说了会话的原因,和会话的管理,其实打开浏览器访问页面,关闭浏览器就是一次会话,一次会话中包含Cookie

那什么是Cookie 呢,其实 是由服务器写给浏览器并且有浏览器来保存,就是客户端保存服务器端发送过来的数据,等待下次去访问服务器时,再带回给服务器端。

一般保存的方式 通过服务器端的 Response 中的addCookie 方法,将Cookie 写回给浏览器。就是写了一个响应头 set-Cookie:cookie的信息

获取的方式则是通过Request 进行获取,request.getCookies(),获取一个Cookie 的数组

Cookie 的属性:

   Name:必须的

   value:必须的

   Comment:可选的,注释

   path:可选的,如果一个cookie设置成了当前的应用的名称,意为着访问当前应用下的所有资源,浏览器都会带着它给服务器

   Domain:可选的,该Cookie 所属的网站域名

   MaxAge:可选的(单位是秒) ,有效时间,不设置就是会话的过程(存储在浏览器中)如果shi0 则说明要删除

上面是这是cookie的一些参数,那么该怎么使用的,下面介绍

创建一个Cookie对象

Cookie  c  = new Cookie (“listvisit”,””+System.currentTimeMilis()) 

   其中 System.currentTimeMilis() 为了防止浏览器缓存的问题

设置Cookie 的有效路径

  c.setPath("/day11");

这是Cookie 的有效时间

  c.setMaxAge(60*60);如果设置为0  则表示消除该Cookie对象

销毁Cookie 

    通过 setMaxAge(0) 表示消除Cookie对象

但是如果设置了path,需要填写当初设置的path路径的信息,进行消除

Cookie cookie = new Cookie("history",null);
cookie.setPath("/day11");
cookie.setMaxAge(0);
response.addCookie(cookie);
	

Cookie的常用api 

    getName 获取存入的key

   getValue获取 存入的值,再获取值的时候,获取的是全部的值

   setDomain(String domain) 设置Cookie 的有效域名

       例如: www.baidu.com  下面的百度音乐  music.baidu.com

   setPath(String path) 设置Cookie的有效路径,在设置时间,和取消时间的时候使用

  setMaxAge(int macAge)   设置Cookie 的有效时间

ServletResponse 中的方法

  getResponseDispatcher( string path) 表示服务器内部资源的跳转 

Cookie 的分类

    会话级别的Cookie : 默认的Cookie 关闭浏览器Cookie就会销毁

   持久级别的Cookie 可以设置Cookie 的有效时间,那么关闭浏览器的时候,Cookie 还是会存在的,需要手动销毁持久性

上面提到了session,下面讲解一下session 

  session的概述,Cookie 本身是有大小和个数限制的,cookie 是保存在客户端,Session 保存在服务器端

session的原理,是基于cookie的

使用session,获得session Request.getSession();

session 的范围的作用范围是一次会话

session 的创建

 服务器:服务器第一次调用request.getSession();

  在jsp 中,创建的时间实在第一次访问jsp页面的时候,创建session 对象

session 的销毁:

       session过期,默认过期时间是30分钟

       非正常变比服务器,如果是正常关闭服务器,session会被被序列化到硬盘,当服务器启动时,会被反序列化

        手动调用 session.invalidate()

执行的原理:

    在打开浏览器的第一次访问服务器的时候,服务器会自动为其创建一个session 并通过cookie技术奖sessionid 传递给客户端,以后客户端在请求应用中的其他资源的时候,会在请求头上面添加Cookie:JSESSION=客户端第一次拿到的session 的id,这样服务器在接收到请求的时候,就会接收到sessionid ,并根据id在内存中找到之前创建的session对象,提供请求使用

session设置超时时间

可以修改tomcat 中的web.xml下的 

<session-config>
	<session-timeout></session-timeout>
</session-config>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值