您的位置:首页 > 编程语言 > Java开发

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消失。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: