Spring Boot Cookie 示例

x33g5p2x  于2021-10-15 转载在 Spring  
字(1.7k)|赞(0)|评价(0)|浏览(371)

在本文中,我们将探讨如何在 Spring Boot 应用程序中使用 cookie。 cookie 是存储在用户网络浏览器中的一小段信息。 Cookies有助于展示用户个性化内容、登录管理等。

在 Spring Boot 应用中,可以使用 Cookie 类设置 cookie,并使用 HttpServletResponse 类添加服务器响应,类似地,可以使用 @CookieValue 来检索 cookie注解。

在本例中,我们将了解有关 cookie 的以下内容:

1.设置cookie
1.获取cookie
1.设置cookie的过期时间

  1. 删除cookie

HttpServletResponse 类的 addCookie(Cookie *cookie*) 方法用于设置一个带有 Cookie 类实例的新 cookie。

@GetMapping("/set")
public String setCookie(HttpServletResponse response) {
    // set a new cookie
    Cookie cookie = new Cookie("color", "blue");
    // add cookie in server response
    response.addCookie(cookie);

    return "Spring Boot Cookies";
}

@CookieValue 注释是从用户请求中获取 cookie 的最简单方法。当没有找到请求的 cookie 时,它​​会抛出 MissingRequestCookieException。它是通过设置请求的 cookie 的默认值来处理的。

@GetMapping("/get")
public String getCookie(@CookieValue(value = "color",
        defaultValue = "No color found in cookie") String color) {

    return "Sky is: " + color;
}

Cookie 到期是指它从网络浏览器中删除的时间段。 cookie 过期时间由 setMaxAge(int *expiry*) 方法设置,其中 expiry[[$10$]] 是一个整数,指定 cookie 的最大年龄,以 为单位;如果为负,则表示不存储 cookie;如果为零,则删除 cookie。

@GetMapping("/expiry")
public String setCookieExpiry(HttpServletResponse response) {

    int cookieAgeInSeconds = 86400;

    Cookie cookie = new Cookie("website", "https://websparrow.org");
    cookie.setMaxAge(cookieAgeInSeconds); // expire in 1 day
    response.addCookie(cookie);

    return "Cookie will expire in " + cookieAgeInSeconds + "seconds.";
}

要删除 cookie,请将 Max-Age 指令设置为 0 并取消设置其值。

@GetMapping("/delete")
public String deleteCookie(HttpServletResponse response) {

    Cookie cookie = new Cookie("color", null);
    cookie.setMaxAge(0); // delete cookie
    response.addCookie(cookie);

    return "Cookie deleted";
}

相关文章

微信公众号

最新文章

更多