在Java Servlet中,如何更改现有Cookie的值?
在Java
Servlet中,如何更改现有Cookie的值?有一个addCookie方法,但是HttpServletResponse中没有deleteCookie或editCookie
回答:
那些确实不存在。只需自己创建实用工具方法即可。特别是获得所需的cookie会很肿。例如
public final class Servlets { private Servlets() {}
public static Cookie getCookie(HttpServletRequest request, String name) {
if (request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
if (cookie.getName().equals(name)) {
return cookie;
}
}
}
return null;
}
}
要编辑Cookie,请设置其值,然后将其添加到响应中:
Cookie cookie = Servlets.getCookie(request, "foo");if (cookie != null) {
cookie.setValue(newValue);
response.addCookie(cookie);
}
如果有必要,请设置最大值,路径和域(如果它们与您的默认值不同)。客户端即不回传此信息。
要删除Cookie,请将最长期限设置为0
(最好将值也设置为null
):
Cookie cookie = Servlets.getCookie(request, "foo");if (cookie != null) {
cookie.setMaxAge(0);
cookie.setValue(null);
response.addCookie(cookie);
}
如果需要,请设置路径和域(如果它们与默认设置不同)。客户端即不回传此信息。
以上是 在Java Servlet中,如何更改现有Cookie的值? 的全部内容, 来源链接: utcz.com/qa/410457.html