Java 我设置了cookie的最大年龄,但关闭浏览器后cookie仍然不存在
我设置了cookie的最大年龄,但关闭浏览器后cookie仍然不存在。我的控制器:Java 我设置了cookie的最大年龄,但关闭浏览器后cookie仍然不存在,java,spring-mvc,cookies,Java,Spring Mvc,Cookies,我设置了cookie的最大年龄,但关闭浏览器后cookie仍然不存在。我的控制器: package com.jiaotong114.jiaotong.controller; @Controller @RequestMapping("/") public class CityIndex { @RequestMapping(value="/city/{cityName}", method = RequestMethod.GET) public String printHello(ModelMap
package com.jiaotong114.jiaotong.controller;
@Controller
@RequestMapping("/")
public class CityIndex {
@RequestMapping(value="/city/{cityName}", method = RequestMethod.GET)
public String printHello(ModelMap model, @PathVariable("cityName") String cityName, HttpServletRequest request, HttpServletResponse response) {
Cookie[] c = request.getCookies();
boolean isNew = true;
for(int i = 0; i < c.length; i++) {
if(c[i].getName().equals("cityName")) {
c[i].setValue(cityName);
c[i].setMaxAge(365 * 24 * 60 * 60);
response.addCookie(c[i]);
isNew = false;
}
}
if(isNew) {
Cookie cityNameCookie = new Cookie("cityName", cityName);
cityNameCookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cityNameCookie);
}
request.getSession().setAttribute("cityName", cityName);
return "index";
}
}
package com.jiaotong114.jiaotong.controller;
@控制器
@请求映射(“/”)
公共类城市索引{
@RequestMapping(value=“/city/{cityName}”,method=RequestMethod.GET)
公共字符串printHello(ModelMap模型,@PathVariable(“cityName”)字符串cityName,HttpServletRequest请求,HttpServletResponse响应){
Cookie[]c=request.getCookies();
布尔值isNew=true;
for(int i=0;i
通过访问来运行此控制器。
然后将cookie添加到客户端。
图片:
有效期为一年。(正如我在代码中设置的:citynamecokie.setMaxAge(365*24*60*60);
)
但是,当我关闭浏览器,重新打开它,进入浏览器时。然后我发现我的城市名字饼干不见了
我在代码中设置了cookie的最长使用时间,为什么关闭浏览器后cookie会消失?最后我找到了问题所在
使用
cookie.setPath(“/”
将cookie的路径设置为应用程序的根目录。这将使cookie可用于所有页面。如果不设置此设置,cookie的路径将是请求路径,这意味着您只能在访问cookie的路径或其子路径时访问cookie。会话已过期?@Roman C我使用“cityNameCookie.setMaxAge(365*24*60*60);”将过期时间设置为一年。从理论上讲,cookie应该在关闭浏览器并关闭会话后存在。如果关闭浏览器,则不能再次使用同一会话。@Roman C是的,但cookie应该存在,即使会话已关闭,因为我调用了setMaxAge()方法并将现有时间设置为一年。默认设置是关闭浏览器(关闭会话)后cookie将消失,但我通过调用setMaxAge()覆盖了默认设置。如果会话过期,您认为为什么要设置cookie?