一、概述
Cookie是Web服务器保存在客户端的一系列文本信息
典型应用一:判断注册用户是否已经登录网站。
典型应用二:”购物车“的处理。
Cookie的作用:
对特定对象的追踪
保存用户网页浏览记录与习惯
简化登录
安全风险:容易泄露用户信息
cookie保存对象大小是有限制的,包括每个域名所包含的cookie数,cookie的总大小,这些均与使用的浏览器有关。在所有浏览器中,任何cookie大小超过限制的都会被忽略,且永远不会被设置。
二、Cookie与session的共同点与区别
共同点:都是用来保存用户状态的一种机制,并且都有生存期限,都会过期
区别:
session | cookie |
在服务器端保存用户信息 | 在客户端保存用户信息 |
session中保存的是object类型 | cookie保存的是string类型 |
随会话的结束而将其存储的数据销毁 | cookie可以长期保存在客户端 |
保存重要信息 | 保存不重要信息,如用户习惯 |
三、应用
创建Cookie对象
Cookie newCookie = new Cookie(String key,Object value);
写入Cookie对象
response.addCookie(newCookie);
读取Cookie对象
Cookie[] cookies = request.getCookies();
示例:
通过request获得用户名密码后将其保存到Cookie中
// 通过request获取用户名密码
String username = URLEncoder.encode(request.getParameter("username"), "utf-8");
String password = request.getParameter("password");
// 将用户密码保存到Cookie中
Cookie usernameCookie = new Cookie("username", username);
Cookie passwordCookie = new Cookie("password", password);
// 设置Cookie的最大生存期限(单位为秒)
usernameCookie.setMaxAge(864000);
passwordCookie.setMaxAge(864000);
// 通过response对象将Cookie保存
response.addCookie(usernameCookie);
response.addCookie(passwordCookie);
从Cookie中获取用户名密码并将其赋值给username和password
String username = "";
String password = "";
// 读取Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie c : cookies) {
if (c.getName().equals("username")) {
username = URLDecoder.decode(c.getValue(), "utf-8");
}
if (c.getName().equals("password")) {
password = c.getValue();
}
}
}
本笔记地址(如果页面显示效果不好可以直接看笔记)