我有一个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值。因为相同的名字。

09-13 11:07