在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

回到顶部