12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package com.backendsys.modules.common.utils;
- import jakarta.servlet.http.Cookie;
- import jakarta.servlet.http.HttpServletRequest;
- import jakarta.servlet.http.HttpServletResponse;
- import org.springframework.util.StringUtils;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- public class CookieUtil {
- private static HttpServletResponse getCurrentResponse() {
- return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
- }
- /**
- * 获取 Cookie 的值
- */
- public static String getCookie(String name, HttpServletRequest request) {
- String value = null;
- if (!StringUtils.isEmpty(name)) {
- //ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
- Cookie[] cks = request.getCookies();
- if (null != cks) {
- for (Cookie cookie : cks) {
- if (name.equals(cookie.getName())) {
- value = cookie.getValue();
- }
- }
- }
- }
- return value;
- }
- /**
- * 设置 Cookie 的值
- * @param name Cookie 名称
- * @param value Cookie 值
- */
- public static void setCookie(String name, String value) {
- HttpServletResponse response = getCurrentResponse();
- if (!StringUtils.isEmpty(name) && value != null) {
- Cookie cookie = new Cookie(name, value);
- cookie.setMaxAge(-1);
- cookie.setPath("/"); // 设置路径为根路径,使 Cookie 在整个域名下有效
- response.addCookie(cookie);
- }
- }
- /**
- * 删除 cookie
- */
- public static void delCookie(String name, HttpServletRequest request) {
- if (!StringUtils.isEmpty(name)) {
- ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
- Cookie[] cks = request.getCookies();
- if (null != cks) {
- for (Cookie cookie : cks) {
- if (name.equals(cookie.getName())) {
- Cookie c = new Cookie(name, null);
- c.setPath("/");
- c.setMaxAge(0);
- HttpServletResponse res = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
- res.addCookie(c);
- }
- }
- }
- }
- }
- }
|