Cookie和Session

1、什么是会话cookie??什么是持久cookie???
cookie信息默认情况下,保存在浏览器的内存中,--------会话cookie
当浏览器在关闭的时候,会清除会话cookie。

持久cookie是保存在客户端硬盘上的,通过setMaxAge(int n)来设置cookie为持久cookie
设置setMaxAge(0);即可
如何清除cookie?----创建一个和你要清除的cookie同名的cookie,然后设置setMaxAge(0),
在这个过程中,一定要手动设置setPath("/XX");否则你很可能清除不了。

2、禁用cookie后,session还能不能使用?
可以,我们需要手动对url进行重写,原理:url;JSESSIONID=xxxx-----在程序中可以调用response.encodeURL()来进行URL重写
一般不要让用户禁用cookie。

3、Cookie的生命周期:
创建:Cookie cookie = new Cookie(name,value); responds.addCookie(cookie);
销毁:对于会话cookie,当会话结束,cookie就销毁;对于持久cookie,当设置的setMaxAge()到期 时,才销毁。
session的生命周期:
创建:request.getSession()---此时创建
销毁:有三种方式:
设置过期时间:
1)、服务器关闭session消失
2)、配置web.xml文件(tomcat服务器的默认session过期时间是30 分钟)
<sessionconfig>
<session-timeout>30</session-timeout>
</sessionconfig>
3)、调用session对象的setMaxInactiveInterval(int interval)----单位是秒
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60*60);设置过期时间是1小时。
4)、手动调用session.invalidate()

原文地址:https://www.cnblogs.com/ZT-SummerRain/p/6735819.html