[英]How to read a cookie in JAX-RS (Jersey)
我按照本指南阅读和创建cookie,但只能读取从相同子域创建的cookie。
例如,如果我在http://localhost:8080/x/y/test/create
创建一个cookie,我可以从以下地址读取它: http://localhost:8080/x/y/test/read
但我不能从中读取它http://localhost:8080/x/y/test2/read
(请注意test和test2之间的区别)
问题出在哪儿? 如何在我的域中到处读取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 = "/"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.