cookie,有时也用其复数形式 cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
快速使用
cookie 以名/值对形式存储,如下所示:
username = zhangsan
当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。
使用步骤:
- 创建cookie对象,绑定数据;new cookie(String name.String value)发送cookie对象;response.addcookie(cookie cookie)获取cookie,拿到数据;cookie[] resquest.getcookies();
cookie注意事项
1、可以一次发送多个cookie,使用reponse多次调用addcookie方法即可
2、保存时间
默认情况:浏览器关闭后,cookie数据销毁
持久化存储;setMaxAge(int seconds)
正数,cookie的数据写入到硬盘,持久化存储,参数为cookie数据存活时间,到期自动删除负数,默认值0,删除cookie信息
3、中文存储,在tomcat8之前,不能直接存,需要转码,但在tomcat8之后,可以直接存中文了,但对于一些特殊字符还是需要进行转码操作。
4、cookie共享
在同一tomcat服务器;部署多个web项目,默认不能共享,使用setPath(String path)设置cookie范围,如果要共享,可以把path设置为“/”;在不同tomcat服务器下,setDomain(String path)如果设置一级域名相同,那么多个服务器之间可以共享cookie。
cookie特点
cookie数据存储在客户端浏览器浏览器对于单个cookie数据的大小有限制(4kb)以及对同意域名下的总cookie数量也有限制(20个)
Session概念
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
快速使用
session的实现依赖于cookie。
获取:request.getSession() 使用:getAttribute()、setAttribute()、removeAttribute()
session注意的细节
1、客户端关闭,服务器不关闭,两次获取的session默认情况下不相同;如需相同,可以创建cookie,键为JSESSIONID,设置最大存活时间,持久化保存
2、客户端关闭,服务器关闭,两次获取的session也是不同的,但要确保数据不丢失。可以使用:
session的钝化:服务器正常关闭前,将session对象序列化到硬盘
session的活化:服务器启动时,将session文件转化为内存中的session对象3、session销毁时间,当服务器关闭时;session对象调用invalidate();session默认失效时间:30分钟
session的特点
存在服务器端 可以存任意类型的数据,任意大小的数据
cookie与session的区别



