Cookie
什么是Cookie:Cookie是服务器通知客户端保存键值对的一种技术
创建一个cookie,cookie是servlet发送到Web浏览器的少量信息,这些信息由浏览器保存,然后发送回服务器。cookie的值可以唯一的标识浏览器客户端,因此cookie常用于会话管理
每个cookie的大小不能超过4kb。客户端有了cookie之后,每次请求都发送给服务器
创建Cookie并通知客户端保存:
- 创建Cookie对象
Cookie cookie=new Cookie("key","value");
- 通知客户端保存Cookie
resp.addCookie(cookie);
服务器获取Cookie:
req.getCookies(); //返回Cookie对象的数组Cookie[]
Cookie值的修改:服务器可以修改Cookie的值
方案一:
1、先在服务器创建一个同名(key)的Cookie对象
2、在构造器,同时赋予新的Cookie值
3、调用addCookie()方法
方案二:
1、先查找到需要修改的Cookie对象
2、调用setValue()方法赋予新的值
3、调用addCookie()方法通知客户端保存修改
Cookie的生命控制:
Cookie的生命控制是指如何管理Cookie什么时候被销毁(删除)
主要由一个方法来决定:
setMaxAge(); //参数设置cookie的最大生存时间,以秒为单位
- 正值:表示在指定的秒数后过期
- 负值:意味着cookie不会被持久存储,将在web浏览器退出时删除(默认值是-1)
- 0:表示马上删除cookie
Cookie有效路径Path的设置:
Cookie 的path属性可以有效的过滤哪些Cookie可以发送给服务器。哪些不发
path属性是通过请求的地址来进行有效的过滤
设置path属性: setPath()
Session会话
什么是Session会话?
Session是一个接口:HttpSession
Session就是会话。它是用来维护一个客户端和服务器之间关联的一种技术
每个客户端都有一个自己的Session会话。Session会话中,我们常用来保存用户登录之后的信息
Session的创建和获取:
创建和获取是使用同一个API:
request.getSession()
第一次调用此方法是创建Session,之后调用此方法是获取之前创建好的Session会话对象
我们可以通过调用isNew()方法判断这个Session是否是刚刚创建的:
- true:表示刚创建
- false:表示获取之前创建
每个会话都有一个唯一的id号码
getId() 方法获取得到Session会话的id值
Session也是一个域对象,可以往域中存取数据
Session的生命周期控制:
public void setMaxInactiveInterval(int interval) ;//设置Session会话的超时时长(以秒为单位)。超过指定的时长Session就会被销毁
- 参数值为正数时,是设定Session的超时时长
- 参数值为负数时,表示永不超时(极少使用)
其他方法:
- public void invalidate() 让当前Session会话马上超时无效
- public int getMaxInactiveInterval() 获取Session的超时时长
Session的默认超时时长为:30分钟。因为在Tomcat服务器的web.xml配置文件中默认有以下的配置
<session-config>
<session-timeout>30</session-timeout>
</session-config>
以上配置表面配置了当前Tomcat服务器下所有的Session会话的超时时长都默认为30分钟
如果我们想配置自己的web工程中的Session会话超时时长默认为其他时长,可以在工程中的web.xml
中做以上相同的配置
注意:
1、Session超时的概念:客户端两次请求之间的最大间隔时长
2、Session技术底层是基于Cookie技术来实现的
本文详细介绍了Cookie和Session的概念及使用。Cookie是服务器发送到浏览器并保存在客户端的小型信息,用于会话管理,每个Cookie大小不超过4KB。服务器可通过setMaxAge()控制其生命周期。Session接口代表客户端与服务器的会话,用于保存用户信息,通过setMaxInactiveInterval()设置超时时间。Session依赖于Cookie技术实现,其默认超时时间为30分钟。
1687

被折叠的 条评论
为什么被折叠?



