cookie设置

mac2025-10-17  8

1.写入cookie

HttpServletResponse response = ServletUtils.getResponse(); // 将token设置到cookie 返回 Cookie cookie = new Cookie(Constants.HEADER_ACCESS_TOKEN_KEY, tokenVo.getToken()); cookie.setPath("/"); //设置cookie的有效时长为100天,默认关闭浏览器失效,单位为:秒 cookie.setMaxAge(100*24*60*60); response.addCookie(cookie);

2.获取cookie

public class getCookie(HttpServletRequest request){ Cookie[] cookies = request.getCookies(); if (cookies == null || cookies.length <= 0) { response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); throw new ServiceException(ErrorCode.authority_un_login.getCode(), ErrorCode.authority_un_login.getMessage()); } for (Cookie cookie : cookies) { if (Constants.HEADER_ACCESS_TOKEN_KEY.equals(cookie.getName())) { token = cookie.getValue(); } if (Constants.HEADER_COOKIE_FRANCHISEE_ID.equals(cookie.getName())) { franchiseeId = cookie.getValue(); } } }

3.工具类

@Slf4j public class ServletUtils { public static HttpServletRequest getRequest() { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); } public static HttpServletResponse getResponse() { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); } /** * heafer中获取User-Agent参数 * * @return */ public static String getUserAgent() { HttpServletRequest request = getRequest(); return request.getHeader(Constants.HEADER_USER_AGENT); } /** * heafer中获取User-Agent参数 * * @param request * @return */ public static String getUserAgent(HttpServletRequest request) { return request.getHeader(Constants.HEADER_USER_AGENT); } /** * 获取root url全路径 * * @return */ public static String getRootUrl() { HttpServletRequest request = getRequest(); return getRootUrl(request); } /** * 获取root url全路径 * * @return */ public static String getRootUrl(HttpServletRequest request) { // 全url地址 StringBuffer url = request.getRequestURL(); String uri = request.getRequestURI(); StringBuffer buffer = url.delete(url.length() - uri.length(), url.length()); return buffer.toString(); } /** * 获取访客xff地址, 如果通过代理进来, 则透过防火墙获取真实xff地址; * * @return */ public static String getIpAddr() { HttpServletRequest request = getRequest(); return getIpAddr(request); } /** * 获取访客xff地址 * * @param request * @return */ public static String getIpAddr(HttpServletRequest request) { String xff = request.getHeader("x-forwarded-for"); if (xff == null || xff.length() == 0 || "unknown".equalsIgnoreCase(xff)) { if (xff == null || xff.length() == 0 || "unknown".equalsIgnoreCase(xff)) { xff = request.getHeader("Proxy-Client-xff"); } if (xff == null || xff.length() == 0 || "unknown".equalsIgnoreCase(xff)) { xff = request.getHeader("WL-Proxy-Client-xff"); } if (xff == null || xff.length() == 0 || "unknown".equalsIgnoreCase(xff)) { xff = request.getHeader("HTTP_CLIENT_xff"); } if (xff == null || xff.length() == 0 || "unknown".equalsIgnoreCase(xff)) { xff = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (xff == null || xff.length() == 0 || "unknown".equalsIgnoreCase(xff)) { xff = request.getRemoteAddr(); } } else if (xff.length() > 15) { String[] xffArray = xff.split(","); for (String str : xffArray) { if (!("unknown".equalsIgnoreCase(str))) { xff = str; break; } } } return xff; } /** * 输出到页面上 * @param msg */ public static void println(String msg) { PrintWriter writer = null; try { HttpServletResponse response = getResponse(); response.setContentType("text/html; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Cache-Control", "no-store"); writer = response.getWriter(); writer.println(msg); } catch (Exception e) { log.error("writer to body error...", e); } finally { writer.flush(); writer.close(); } } }

 

最新回复(0)