您的位置:首页 > 其它

Cookie和Session学习

2017-03-01 13:21 204 查看

Cookie和Session学习

Cookie

Cookie简介:

Cookie是一种客户端的会话技术。会话的生命周期是打开浏览器网页窗口到关闭浏览器网页窗口。cookie如果没有设置最大存活时间,在关闭浏览器网页窗口时,cookie就会消失。

Cookie是通过拓展HTTP协议来实现的,服务器通过HTTP协议的响应消息头添加cookie,响应给浏览器(如果设置了cookie的最大生存时间,就会在浏览器中有缓存),浏览器再次请求客户端时,会在http的请求消息头携带cookie信息,访问服务器,这时,服务器就可以识别出这个浏览器之前访问过。

Cookie的相关api介绍:

request.getCookies():获取cookies[],在浏览器一个会话可能包含多个cookies。

response.addCooike():给响应客户端的信息头加上cookie字段

Cookie的构造方法

Cookie(String name,String value)
name:表示cookie的名称
value:表示cookie的值

注意:cookie的名称必须遵守RFC规范。只能包含ASCII字符,不能包含逗号,分号,空格,$开头。

cookie的名称在创建之后不得更改。


setPath():设置cookie的路径,让客户端知道是哪个的web应用的cookie。用于区别不同web项目的cookie。

getPath():获取cookie的路径,可以通过路径来匹配cookie。

setMaxAge():设置cookie的最大生存时间,以秒为单位。

如果setMaxAge()的值为负数:表示不存储cookie
如果为0,表示删除cookie
如果大于0,表示cookie的最大生存时间


getMaxAge():返回的是cookie的最大生存时间。

setSecure():设置cookie安全,浏览器只会在HTTPS等安全协议中传输。

Session(所指的是HttpSession)

Session简介

在Web开发中,服务器会为每个用户浏览器创建一个会话对象(Seesion对象),一个用户浏览器独占一个Session对象。

会话(Session)的生命周期:从打开浏览器网页窗口到关闭浏览器网页窗口。

Session对象存储着用户会话所需的属性及配置信息。在其生命周期内用户的属性及配置信息,可以在多个Servlet之间共享。

服务器创建Session出来后,会把Session的id,以cookie的形式返回给客户端,只要会话未结束,客户端再次访问服务器时,会带有Session的id号的cookie信息。

Session的相关API

request.getSession():返回的是一个HttpSession。

getAttribute(String name):通过name获取session存储的值

setAttribute(String name,Object value):给Session设置值。

getAttributeNames():获取Session所有的配置信息名。

getId():获取Session的id。

isNew():如果客户端还不知道该会话,或者客户端选择不加入该会话,则返回true。

getLastAccessedTime():返回客户端上一次发送与此会话关联的请求的时间。

getMaxInactiveInterval():返回 servlet 容器在客户端访问之间将使此会话保持打开状态的最大时间间隔,以秒为单位。

setMaxInactiveInterval():设置会话保持的最大时间间隔,以秒为单位。

invalidate():使此会话无效

Session销毁的方式

调用invalidate()方法强制销毁

超时(默认30分钟)

通过setMaxIncativeInterval(int interval)设置最大间隔时间,单位秒。

在web.xml中配置

<session-config>
<!-- 设置Session的有效时间,单位是分钟 -->
<session-timeout>5</session-timeout>
</session-config>


Cookie和Session的区别

Cookie是把用户数据写给用户的浏览器,Session的数据放在服务器上。

cookie的数据是不安全的(本地会进行缓存,容易被人获取),Session会更安全。

Cookie保存的数据有大小限制,不超过4k。

Cookie保存的是字符串,Session保存的是对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: