我正在将用户重定向到某个URL,我想用它发送一个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(),因为我正在将用户重定向到绝对页面.
可能吗?我究竟做错了什么?
解决方法:
只能为发送请求的域或子域设置/检索Cookie.否则这是一个巨大的安全漏洞.
因此,如果您要重定向到其他域,那么该cookie将无法在那里使用.如果您明确地将cookie域设置为该不同的域,那么它将被忽略.如果您没有明确设置cookie域(因此默认设置为与发送请求的域相同的域),那么它只能用于当前域,而不能用于重定向域.
您需要寻找其他方式,具体取决于具体的功能要求.由于你根本没有说明你问题中的具体功能要求,所以很难建议一个.也许您应该发送一些特定的请求参数?
标签:java,redirect,cookies,servlets
来源: https://codeday.me/bug/20190613/1232254.html