HttpServletResponse重定向时Cookie“丢失”问题解决

问题描述

最近开发遇到一个问题,在用HttpServletResponse的sendRedirect方法做重定向时,创建Cookie并添加到response中,重定向后,在chrome浏览器通过开发者工具无法查看到添加到cookie内容。

重定向代码如下:

try {
            Cookie xReferCookie = new Cookie("x-referer", xReferer + "_" + token);
            Cookie xChannelCookie = new Cookie("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 (IOException e) {
            log.error("跳转目标h5页面失败,targetUrl: []", targetUrl);
            return new ResponseEntity("error", HttpStatus.INTERNAL_SERVER_ERROR);
        }

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

注: Cookie的MaxAge单位为秒。

内存Cookie:

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

硬盘Cookie:

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

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

由上述可知,上面我的代码中未通过setMaxAge()方法设置有效时间,其值默认为-1,即此时创建的cookie为临时cookie,只存在在浏览器进程中,当浏览器关闭,进程失效。

参考地址:

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值