JavaWeb基础---Cookie和Session
2016-03-28 17:04
495 查看
这篇文章,cookie和session的作用及区别,总结地很好。
主要掌握以下几点
1.Cookie和Session本质区别
由于HTTP协议是一种无状态协议,所以如果需要保持状态的话,就需要其他手段。
Cookie机制用于在客户端保持状态。
Session机制用于在服务端保持状态。
2.Cookie的种类
(1)会话Cookie
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
(2)持久Cookie
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
3.增加Cookie
①创建Cookie对象
②设置最大时效
③将Cookie放入到HTTP响应报头,使用HttpServletResponse的addCookie方法。
补充:
如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie:存储在浏览器的内存中,用户退出浏览器之后被删除。如果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该 cookie。
4.读取Cookie
①调用request.getCookie,返回一个cookie数组。
②对数组进行循环,调用每个cookie的getName方法,直到找到感兴趣的cookie为止。
5.Session的实现方式
①cookie
保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。
②URL重写
就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。
③表单隐藏字段
就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
5.关闭浏览器
关闭浏览器,只会是浏览器端内存里的session cookie消失,但不会使保存在服务器端的session对象消失,同样也不会使已经保存到硬盘上的持久化cookie消失。
主要掌握以下几点
1.Cookie和Session本质区别
由于HTTP协议是一种无状态协议,所以如果需要保持状态的话,就需要其他手段。
Cookie机制用于在客户端保持状态。
Session机制用于在服务端保持状态。
2.Cookie的种类
(1)会话Cookie
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
(2)持久Cookie
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
3.增加Cookie
①创建Cookie对象
②设置最大时效
③将Cookie放入到HTTP响应报头,使用HttpServletResponse的addCookie方法。
补充:
如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie:存储在浏览器的内存中,用户退出浏览器之后被删除。如果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该 cookie。
4.读取Cookie
①调用request.getCookie,返回一个cookie数组。
②对数组进行循环,调用每个cookie的getName方法,直到找到感兴趣的cookie为止。
5.Session的实现方式
①cookie
保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。
②URL重写
就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。
③表单隐藏字段
就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。
5.关闭浏览器
关闭浏览器,只会是浏览器端内存里的session cookie消失,但不会使保存在服务器端的session对象消失,同样也不会使已经保存到硬盘上的持久化cookie消失。
相关文章推荐
- atitit.eclipse 新特性总结3.1--4.3
- 工厂模式
- Java实现代理模式(动态代理)
- Java第三次作业
- MyEclipse中使用Maven构建Web开发项目
- JAVA-1-学习历程1:基础知识1
- Java注解
- Spring 3.x jar 包详解 与 依赖关系(转)
- Spring第十篇—举例实现AOP
- Spring第十一篇——–Spring整合Hibernate之配置数据源
- SpringMVC集成Bean Validation 1.1
- Spring第12篇—— Spring对Hibernate的SessionFactory的集成功能
- 事务中的tx:method
- spring学习笔记(25)spring整合quartz多版本实现企业级任务调度
- Spring第13篇—–Spring整合Hibernate之声明式事务管理
- 开发环境配置-eclipse统一格式-1
- spring中使用Quartz任务调度框架
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java 线程内 递归 Bug 一例
- Java之JDBC①