参考文档
示例
示例1
PublicParam 是一个公共参数类
import com.anchi.car.coresystem.consumer.exception.LoginException; import com.anchi.car.coresystem.consumer.model.PublicParam; import com.google.common.base.Splitter; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * cookie工具类 * Created by * 2017-07-30 16:31 */ @Slf4j @Component public class CookieUtil { /** * 元素个数 */ private static final Integer COOKIE_ELE_SIZE = 8; /** * 设置 * * @param response * @param name * @param value * @param maxAge */ public void set(HttpServletResponse response, String name, String value, int maxAge) { Cookie cookie = new Cookie(name, value); cookie.setPath("/"); cookie.setMaxAge(maxAge); response.addCookie(cookie); } /** * 获取cookie * * @param request * @param name * @return */ public Cookie get(HttpServletRequest request, String name) { Map<String, Cookie> cookieMap = readCookieMap(request); return cookieMap.getOrDefault(name, null); } /** * 获取cookie的值 * * @param request * @param name * @return */ public String getValue(HttpServletRequest request, String name) { Map<String, Cookie> cookieMap = readCookieMap(request); if (cookieMap.containsKey(name)) { return cookieMap.get(name).getValue(); } else { throw new LoginException("登录异常"); } } /** * 获取cookie的值 * * @param request * @param name * @return */ public PublicParam getPublicParam(HttpServletRequest request, String name) { String cookieValue = getValue(request, name); List<String> cookieValueList = new ArrayList<>(); Splitter.on("|").split(cookieValue).forEach(cookieValueList::add); if (cookieValueList.size() != COOKIE_ELE_SIZE) { throw new LoginException("登录异常"); } PublicParam publicParamTemp = new PublicParam(); for (int i = 0; i < cookieValueList.size(); i++) { if (i == 0) { publicParamTemp.setUserId(cookieValueList.get(i)); } if (i == 1) { publicParamTemp.setDeviceId(cookieValueList.get(i)); } if (i == 2) { publicParamTemp.setPid(cookieValueList.get(i)); } if (i == 3) { publicParamTemp.setVid(cookieValueList.get(i)); } if (i == 4) { publicParamTemp.setLng(cookieValueList.get(i)); } if (i == 5) { publicParamTemp.setLat(cookieValueList.get(i)); } if (i == 6) { publicParamTemp.setLang(cookieValueList.get(i)); } if (i == 7) { publicParamTemp.setDeviceToken(cookieValueList.get(i)); } } return publicParamTemp; } /** * 将cookie封装成Map * * @param request * @return */ private Map<String, Cookie> readCookieMap(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (cookies != null) { Map<String, Cookie> cookieMap = new HashMap<>(cookies.length); for (Cookie cookie : cookies) { cookieMap.put(cookie.getName(), cookie); } return cookieMap; } else { return new HashMap<>(0); } } }