Java:response.sendRedirect()如何能携带设定的cookie?

有一个页面需要免登陆访问,所以我让客户端访问一个地址,地址在拦截器时转向一个方法,方法中需要先用httpclient获得session id,然后如下

Cookie cookie = new Cookie("JSESSIONID", jSessionId);
cookie.setMaxAge(0);
response.addCookie(cookie);   
String redirectUrl = request.getContextPath() + Global.getAdminPath() +  "/doCancel";
response.sendRedirect(redirectUrl);

redirectUrl是一个springmvc控制器的路径,指向一个模板jsp页面,
这就是最终需要免登陆访问的页面
在chrome调试看到,设定的cookie并没有带上
怎么回事?

阅读 15.7k
3 个回答

1、把这段代码加上

cookie.setDomain(domain);
cookie.setPath("/");

2、转向的地址域名要和写入cookie的域(domain),在同一个域(例如:一级域 .baidu.com)下面

你为什么要重新设置sessionId,什么场景

JSESSIONID是做为容器保留字的, 容器负责管理. 除非全部session都应用来管理, 否则不要重置,这本身也有安全问题. 可以做为参数加在URL后面

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题