我有一个jax-rs端点。在端点那边,我需要删除或更改现有cookie的现有值。下面我提到了我的代码。
@GET
@Path("/")
@Produces("text/html")
public String logout(@Context HttpServletRequest request, @QueryParam("logoutNotification") String logoutNotification,
@QueryParam("id_token_hint") String id_token_hint,@CookieParam("statusCookie") javax.ws.rs.core.Cookie cookie) {
Response response=null;
if(logoutNotification.equals("T")) {
if (cookie != null) {
//update the value of the statusCookie cookie or remove the existing statusCookie cookie
}
}
有人请帮我实现这个。谢谢。
最佳答案
您可以尝试这样的事情。
@GET
@Path(value = "/test")
public Response test(@CookieParam("statusCookie") javax.ws.rs.core.Cookie cookie) {
NewCookie newCookie = null;
if(cookie != null) {
newCookie = new NewCookie("statusCookie", "second");
} else {
newCookie = new NewCookie("statusCookie", "first");
}
return Response.ok("test").cookie(newCookie).build();
}
第一次检查是否存在名为
statusCookie
的cookie,如果不存在,它将创建一个新的cookie并将其值设置为first
。当statusCookie
存在时,它还会创建一个具有相同名称的新cookie,并将其值设置为second
,这实际上会覆盖现有的cookie值。因为相同的名字。