java 发送cookie_java – 如何在response.sendRedirect()之后发送cookie?

我正在将用户重定向到某个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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值