现在的位置: 首页 > web前端 > 正文

web Java response sendRedirect()如何能携带设定的cookie

2020年07月15日 web前端 ⁄ 共 1097字 ⁄ 字号 评论关闭

  有一个页面需要免登陆访问,所以我让客户端访问一个地址,地址在拦截器时转向一个方法,方法中需要先用httpclient获得sessionid,redirectUrl是一个springmvc控制器的路径,指向一个模板jsp页面,这就是最终需要免登陆访问的页面在chrome调试看到,设定的cookie并没有带上,怎么回事?


  HttpServletResponse.sendRedirect重定向与Cookie失效


  重定向代码如下:


  try{


  CookiexReferCookie=newCookie("x-referer",xReferer+"_"+token);


  CookiexChannelCookie=newCookie("x-channel",xChannel);


  xReferCookie.setPath("/");


  xChannelCookie.setPath("/");


  xReferCookie.setDomain("xxxx.com");


  xChannelCookie.setDomain("xxxx.com");


  response.addCookie(xReferCookie);


  response.addCookie(xChannelCookie);


  response.sendRedirect(targetUrl);


  }catch(IOExceptione){


  log.error("跳转目标h5页面失败,targetUrl:[]",targetUrl);


  returnnewResponseEntity("error",HttpStatus.INTERNAL_SERVER_ERROR);


  }


  1234567891011121314


  #Cookie类型、创建方式及特性


  注:Cookie的MaxAge单位为秒。


  responsesendredirect内存Cookie:


  由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。


  硬盘Cookie:


  保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的


  MaxAge:该Cookie失效的时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为–1


  总之,responsesendredirect给大家简单的介绍了一些,希望大家多看看。


  

抱歉!评论已关闭.