我正在将用户重定向到某个网址,我想用它发送一个cookie:
Cookie cookie = new Cookie("CADASTROADM", "someValue");
cookie.setPath("/");
cookie.setMaxAge(129600); //With it or without, makes no difference.
URL urlToRedirect = new URL(pageToRedirect);
cookie.setDomain(urlToRedirect.getHost());//With it or without, makes no difference.
response.addCookie(cookie);
response.sendRedirect(pageToRedirect);
但是,当他被重定向到页面时,cookie就不存在了。我无法使用requestDispatcher.forward(),因为我正在将用户重定向到绝对页面。
有可能吗?我究竟做错了什么?
答案 0 :(得分:8)
只能为发送请求的域或子域设置/检索Cookie。否则这是一个巨大的安全漏洞。
因此,如果您要重定向到其他域,那么该cookie将无法在那里使用。如果您明确地将cookie域设置为该不同的域,那么它将被忽略。如果您没有明确设置cookie域(因此它默认设置为发送请求的域),那么它只能用于当前域,而不能用于重定向域。
您需要寻找其他方式,具体取决于具体的功能要求。由于你根本没有说明你问题中的具体功能要求,所以很难建议一个。也许您应该发送一些特定的请求参数?