在本文中,我们将探讨如何在 Spring Boot 应用程序中使用 cookie。 cookie 是存储在用户网络浏览器中的一小段信息。 Cookies有助于展示用户个性化内容、登录管理等。
在 Spring Boot 应用中,可以使用 Cookie
类设置 cookie,并使用 HttpServletResponse
类添加服务器响应,类似地,可以使用 @CookieValue
来检索 cookie注解。
在本例中,我们将了解有关 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";
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.websparrow.org/spring/spring-boot-cookies-example
内容来源于网络,如有侵权,请联系作者删除!