cookie && session
2015-04-23 16:49
155 查看
/**
* Cookie 在服务器端创建 保存在浏览器端
* 作用:存储用户的数据信息
* Cookie存储的用户信息是以String类型 的键值对保存的
* 服务器发给浏览器的cookie存储在相应头中 在Set-Cookie可以看到cookie信息
* 浏览器发给服务器的cookie存在请求头中
* cookie是客户端技术
*
* 在浏览器第一次访问应用时cookie没有生产,访问之后才产生cookie
* 只有在第二次访问(以后访问)时,才会带过来cookie信息
* 每一个应用的cookie都是独立存储的,不同的应用之间不能访问对方的cookie
* 同一个应用可以创建多个cookie
* 一个web网站可以给多个浏览第发送cookie,每中浏览器都有自己的cookie
* 存储方式,不同的浏览器之间不能访问彼此的cookie。一个浏览器可以存储多个
* 网站的cookie。
* 浏览器一般只允许存放300个cookie,同一个站点最多存放20个cookie
* 每个cookie的大小限制为4kb。
* 默认情况下,回话级别的cookie在浏览器退出之后即被删除,可以通过设置,来确定cookie
* 的存储时间 //设置cookie的生命周期 cookie.setMaxAge(3600);
* 正整数:代表多少秒之后cookie失效
* 零:清除cookie
* 负数:保存在浏览器内存中
* 过期的cookie会自动清除
* cookie创建以后,如果设置了存储时间,在存储时间范围内,只要访问该站点,就会附带上cookie信息
* 默认情况下cookie是保存在浏览器内存中的,浏览器关闭,cookie就消失。
* 可以指定cookie保存的路径,默认放在当前应用的站点根目录下。
* cookie.setPath("路径");
* 一但设置cookie路径以后,只有在对应的路径及其子路径下,才能获取到cookie
* 当前应用的cookie可以放到其他应用的目录下,在其他应用中获取该cookie信息
*
*
*
* 装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。
* 换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。
* 因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。
* 并且,当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
* 客户不知道代理委托了另一个对象
* 客户指定了装饰者需要装饰的是哪一个类
*/
session
session在服务端产生,存储在服务端,属于服务端技术
cookie的数据是保存在浏览器 存储的信息量有限
cookie的信息可以被用户清晰的看到 不适合保存用户的敏感信息
用户可以禁用cookie cookie必须发送到浏览器
session不用发送到浏览器端
session对象是在第一次调用request.getSession()或者request.getSession(true)
时创建的。
服务器在创建session之后,会为每一个session分配一个唯一的id作为标示
服务器会为每一个用户的浏览器创建一个独享的session对象
向session中保存数据
session.setAttribute("name", "adlkdksl");
通过session获取保存的数据,当获取的属性不存在时,返回的结果为null
String name = (String) session.getAttribute("name");
在同一个会话中 ,session的id都是相同的
默认情况下session的id保存在cookie中 JSESSIONID=D66482711E61E1EF93DD45309FE79974;
所有的session存储在一个map集合中
session依赖于cookie 通过JSESSIONID判断不同的用户浏览器请求
默认情况下 关闭浏览器,session没有消失,消失的是cookie存储的JSESSIONID
所以再去开启浏览器时,使用的是不同的会话。
可以通过cookie,设置JSESSIONID的生命周期
Cookie c = new Cookie("JSESSIONID",session.getId());
c.setMaxAge(6000);
response.addCookie(c);
session.setMaxInactiveInterval()设置session的失效时间
设置session以后,每次浏览器启动时都会查找JSESSIONID来找以往的session
如果找不到或者为空,则创建新的session。
调用getSession()方法后,就会创建session。
request.getSession(true);标示如果没有对应的JSESSIONID对象,
就会创建一个新的JSESSIONID为id的session对象,通常用来创建session对象
request.getSession(false);如果没有对应的JSESSIONID对象
则返回null;通常用来获取session对象
调用session.invaldate();之后session被销毁
session默认的过期时间是三十分钟,也可以在服务器中设置session的过期时间或者
通过session.setMaxInactiveInterval()设置session的失效时间
/**
* Cookie 在服务器端创建 保存在浏览器端
* 作用:存储用户的数据信息
* Cookie存储的用户信息是以String类型 的键值对保存的
* 服务器发给浏览器的cookie存储在相应头中 在Set-Cookie可以看到cookie信息
* 浏览器发给服务器的cookie存在请求头中
* cookie是客户端技术
*
* 在浏览器第一次访问应用时cookie没有生产,访问之后才产生cookie
* 只有在第二次访问(以后访问)时,才会带过来cookie信息
* 每一个应用的cookie都是独立存储的,不同的应用之间不能访问对方的cookie
* 同一个应用可以创建多个cookie
* 一个web网站可以给多个浏览第发送cookie,每中浏览器都有自己的cookie
* 存储方式,不同的浏览器之间不能访问彼此的cookie。一个浏览器可以存储多个
* 网站的cookie。
* 浏览器一般只允许存放300个cookie,同一个站点最多存放20个cookie
* 每个cookie的大小限制为4kb。
* 默认情况下,回话级别的cookie在浏览器退出之后即被删除,可以通过设置,来确定cookie
* 的存储时间 //设置cookie的生命周期 cookie.setMaxAge(3600);
* 正整数:代表多少秒之后cookie失效
* 零:清除cookie
* 负数:保存在浏览器内存中
* 过期的cookie会自动清除
* cookie创建以后,如果设置了存储时间,在存储时间范围内,只要访问该站点,就会附带上cookie信息
* 默认情况下cookie是保存在浏览器内存中的,浏览器关闭,cookie就消失。
* 可以指定cookie保存的路径,默认放在当前应用的站点根目录下。
* cookie.setPath("路径");
* 一但设置cookie路径以后,只有在对应的路径及其子路径下,才能获取到cookie
* 当前应用的cookie可以放到其他应用的目录下,在其他应用中获取该cookie信息
*
*
*
* 装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。
* 换句话 说,用代理模式,代理类(proxy class)可以对它的客户隐藏一个对象的具体信息。
* 因此,当使用代理模式的时候,我们常常在一个代理类中创建一个对象的实例。
* 并且,当我们使用装饰器模 式的时候,我们通常的做法是将原始对象作为一个参数传给装饰者的构造器。
* 客户不知道代理委托了另一个对象
* 客户指定了装饰者需要装饰的是哪一个类
*/
session
session在服务端产生,存储在服务端,属于服务端技术
cookie的数据是保存在浏览器 存储的信息量有限
cookie的信息可以被用户清晰的看到 不适合保存用户的敏感信息
用户可以禁用cookie cookie必须发送到浏览器
session不用发送到浏览器端
session对象是在第一次调用request.getSession()或者request.getSession(true)
时创建的。
服务器在创建session之后,会为每一个session分配一个唯一的id作为标示
服务器会为每一个用户的浏览器创建一个独享的session对象
向session中保存数据
session.setAttribute("name", "adlkdksl");
通过session获取保存的数据,当获取的属性不存在时,返回的结果为null
String name = (String) session.getAttribute("name");
在同一个会话中 ,session的id都是相同的
默认情况下session的id保存在cookie中 JSESSIONID=D66482711E61E1EF93DD45309FE79974;
所有的session存储在一个map集合中
session依赖于cookie 通过JSESSIONID判断不同的用户浏览器请求
默认情况下 关闭浏览器,session没有消失,消失的是cookie存储的JSESSIONID
所以再去开启浏览器时,使用的是不同的会话。
可以通过cookie,设置JSESSIONID的生命周期
Cookie c = new Cookie("JSESSIONID",session.getId());
c.setMaxAge(6000);
response.addCookie(c);
session.setMaxInactiveInterval()设置session的失效时间
设置session以后,每次浏览器启动时都会查找JSESSIONID来找以往的session
如果找不到或者为空,则创建新的session。
调用getSession()方法后,就会创建session。
request.getSession(true);标示如果没有对应的JSESSIONID对象,
就会创建一个新的JSESSIONID为id的session对象,通常用来创建session对象
request.getSession(false);如果没有对应的JSESSIONID对象
则返回null;通常用来获取session对象
调用session.invaldate();之后session被销毁
session默认的过期时间是三十分钟,也可以在服务器中设置session的过期时间或者
通过session.setMaxInactiveInterval()设置session的失效时间
相关文章推荐
- Session &Cookie
- cookie&session
- cookie & session
- cookie&session&servletContext
- Javaweb学习笔记5—Cookie&Session
- SCWCD(Servlet&Jsp learning)第二问-------cookie和session的区别和联系
- JavaWeb学习篇之----Session&&Cookie
- Web安全测试学习笔记(Cookie&Session)
- rails authentication session & cookie
- 【JAVAWEB学习笔记】16_session&cookie
- PHP Cookie与Session的使用与区别
- session&cookie总结
- cookie&session的Q&A故事[原理篇]
- cookie & session
- 会话技术Cookie&Session
- cookie&session学习之一--从一个形象的例子说起(zl)
- JavaWeb学习笔记五 会话技术Cookie&Session
- WEB-Cookie&Session
- cookie&session笔记
- Cookie & Session