首先Cookie是我们后端向前端传输数据的时候设置的一些数据字段,但是Cookie的作用并不是用来传输数据,传输数据的工作交给Json,Cookie更多的是用作验证
当用户登录之后,我们会向用户的前端Cookie里设置 token 之类的字段用于后续判断用户的身份,那么为什么可以要用Cookie来判断身份呢?因为Cookie不是只能由后端传输的前端而已,它是保存在用户本地的,前端与后端通过 Http 请求的时候,只要不手动清除,就会带上Cookie传输,后端可以通过 HttpRequest获取Cookie,还可以通过HttpResponse设置Cookie
那么Cookie的操作我们写一个工具类来统一处理,因为cookie是一个字符串,里面会有多个值,我们需要手动取出
/**
* cookie工具
* @author: 林之谦
* @date: 2018/8/2
* @description:
*/
public class CookieUtil {
/**
* 设置cookie
* @param response
* @param key
* @param value
* @param maxAge
*/
public static void set(HttpServletResponse response,
String key,
String value,
Integer maxAge){
Cookie cookie = new Cookie(key,value);
cookie.setPath("/");
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
/**
* 奖cookie封装成map
* @param request
* @param name
* @return
*/
public static Cookie get(HttpServletRequest request,
String name){
Map<String,Cookie> cookieMap = readCookieMap(request);
if(cookieMap.containsKey(name)){
return cookieMap.get(name);
}else{
return null;
}
}
private static Map<String,Cookie> readCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<>();
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(),cookie);
}
}
return cookieMap;
}
}