Cookie 可以用來將一些臨時數據保存到瀏覽器中,比如你在瀏覽器的訪問記錄、登錄密碼、用戶名等。
<br/>
**1. 對Cookie進行寫、讀、刪操作**
```java
@WebServlet("/cookie")
public class CookieServlet extends BaseServlet {
/**
* 寫Cookie
*/
public void write(HttpServletRequest request, HttpServletResponse response) {
//Cookie(String name, String value)
//name:cookie的名稱
//value:cookie的值
Cookie cookie = new Cookie("user", "zhangsan");
//設置過期時間,如果不設置默認為-1,表示永不過期。單位s
cookie.setMaxAge(3600);
//通知瀏覽器保存Cookie
response.addCookie(cookie);
}
/**
* 讀取Cookie
*/
public void read(HttpServletRequest request, HttpServletResponse response) throws IOException {
Cookie[] cookies = request.getCookies();
Map<String, Object> map = new HashMap<>(1);
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("user".equals(cookie.getName())) {
map.put(cookie.getName(), cookie.getValue());
}
}
}
response.getWriter().print(JSON.toJSONString(map));
}
/**
* 刪除Cookie
*/
public void delete(HttpServletRequest request, HttpServletResponse response) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("user".equals(cookie.getName())) {
//設置過期時間為0即可刪除
cookie.setMaxAge(0);
//通知瀏覽器更新cookie信息
response.addCookie(cookie);
}
}
}
}
}
```
**2. 測試**
```
訪問:http://localhost:8080/web/cookie?method=write 寫cookie
訪問:http://localhost:8080/web/cookie?method=read 讀cookie,將得到如下信息
{"user":"zhangsan"}
訪問:http://localhost:8080/web/cookie?method=delete 刪cookie,
然后再訪問 http://localhost:8080/web/cookie?method=read 讀cookie,會發現cookie已經不在了
```