java - 如何读取 JAX-RS( Jersey )中的 cookie

标签 java rest cookies jax-rs

我关注了this guide读取和创建 cookie,但我只能读取从同一子域创建的 cookie。

例如,如果我在http://localhost:8080/x/y/test/create中创建一个cookie,我可以从以下位置读取它:http ://localhost:8080/x/y/test/read 但我无法http://localhost:8080/x/y/test2/read<读取它 (注意 testtest2 之间的区别)

问题出在哪里?我如何才能读取域中各处的 cookie?

这是代码:

1 级

@Path("test")
public class Test {

    @GET
    @Path("/create")
    @Produces(MediaType.TEXT_PLAIN)
    public Response login() {
        NewCookie cookie = new NewCookie("name", "123");
        return Response.ok("OK").cookie(cookie).build();
    }

    @GET
    @Path("/read")
    @Produces(MediaType.TEXT_PLAIN)
    public Response foo(@CookieParam("name") String value) {
        System.out.println(value);
        if (value == null) {
            return Response.serverError().entity("ERROR").build();
        } else {
            return Response.ok(value).build();
        }
    }

}

2 级

@Path("test2")
public class Test2 {

    @GET
    @Path("/read")
    @Produces(MediaType.TEXT_PLAIN)
    public Response foo(@CookieParam("name") String value) {
        System.out.println(value);
        if (value == null) {
            return Response.serverError().entity("ERROR").build();
        } else {
            return Response.ok(value).build();
        }
    }
}

编辑

问题出现在创建时。现在我以这种方式创建cookie:

NewCookie cookie = new NewCookie("name", "123", "/", "", "comment", 100, false);

最佳答案

这是默认行为。 要将 cookie 设置为您的域,请使用 cookie 的另一个构造函数,并设置空域和根路径:

domain = ""
path = "/"

关于java - 如何读取 JAX-RS( Jersey )中的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190230/

相关文章:

json - 可以使用 RestTemplate PUT 传递我自己的对象

json - 如何将选项传递给Rundeck作业Webhook URL

Python:按顺序发送异步http请求并自动处理cookie?

java - Spring引导maven插件: goals and phase

java - Android 工具栏菜单项保持为空

javascript - Tomcat REST API 上的 CORS 访问

php - 在根域 (www) 上启动一个 php $_SESSION 并跨子域共享 session

ruby-on-rails - Rails 实际上在哪里为 _session_id 编写 Set-Cookie header ?

java - 根据文件包含计算md5哈希值(意味着没有文件名)

JavaMail API 和 Tomcat 7 实现