状态Cookie:Cookie对象仅会被缓存在浏览器所在的内存中。当浏览器关闭后Cookie对象 也会被销毁。
持久化Cookie:浏览器会对Cookie做持久化处理,基于文件形式保存在系统的指定目录中。在Windows10系统中为了安全问题不会显示Cookie中的内容。
当Cookie对象创建后默认为状态Cookie。可以使用Cookie对象下的cookie.setMaxAge(60)方法设置失效时间,单位为秒。一旦设置了失效时间,那么该Cookie为持久化Cookie,浏览器会将Cookie对象持久化到磁盘中。当失效时间到达后文件删除。
通过Cookie实现客户端与服务端会话的维持
需求:当客户端浏览器第一次访问Servlet时响应“您好,欢迎您第一次访问!”,第二次访问时响应“欢迎您回来!”。
获取Cookie
Cookie[] cookies = req.getCookies();
If(cookies!=null){
For(Cookie cookie:cookies){
If(“welcome”.equals(cokkie.getName())){
Flag = true;
Braek;
}
}}
If(flag){
Pw.println(“欢迎你回来!”)
}
Else{
Pw.println(您好,欢迎您第一次访问!);
Cookie cookie = new Cookie(“weilcome”,”welcome”)
Cookie.setMaxAge(60)
}
Cookie总结
Cookie对于存储内容是基于明文的方式存储的,所以安全性很低。不要在Cookie中存放敏感数据。在数据存储时,虽然在Servlet4.0中Cookie支持中文,但是建议对Cookie中存放的内容做编码处理,也可提高安全性。