cookie
原理
一次会话中,cookie是由服务器创建,服务器使用过响应头 SET-COOKIE 的方式把 msg=hello 回写到浏览器,浏览器保存,浏览器下次访问该服务器时会通过请求头 COOKIE 的方式把 msg=hello 携带cookie到服务器,服务器可以接受处理
api
发送
new Cookie("名字",值)
cookie.setMaxAge(60*60*24)
cookie.setPath()
cookie.setDomain()
response.addCookie(cookie)
接受
Cookie[ ] cks = request.getCookies();
cookie.getName()
cookie.getValue()
注意点:
1.cookie如果重复会覆盖
2.cookie可以发送多个
3.cookie可以持久化
4.cookie在tomcat8开始支持中文,但是不建议,如果要使用中文,空格,特殊符号需要进行编码后再进行操作
5.cookie可以跨项目和跨服务器进行共享
6.cookie大小4k以内,个数20个
7.cookie保存在本地
session
api
reqeust.getSession()
session.setAttribute()
session.getAttribute()
session.removeAttribute()
session创建的时候,创建了一个对象,而这个对象可以存储一些数据,这个session对象在创建的时候,系统会给session提供一个id
服务器会自动帮我们创建一个cookie对象, JSESSIONID=session对象的id(不是内存中的地址值)
服务器会把该cookie返回给浏览器,浏览器会把该cookie保存,下次访问会携带该cookie重新到服务器,服务器会判断是否包含JSESSIONID的cookie是否存在,
如果存在就根据id的值获取目标的session对象
session的固化(钝化)和活化
钝化
tomcat关闭时会把session对象保存到硬盘上
活化
tomcat启动,加载之前文件,把session对象全部重新创建,把之前保存的值重新赋值,然后把原先保存的文件删掉
session的销毁
1.session.invilidate()
2.服务器非正常关闭
3.默认时间30分钟
cookie和session的关系
session依赖于cookie
session是保存在服务器的
cookie在浏览器
原文:https://www.cnblogs.com/xiaoxiaobaizht/p/10900341.html