Cookie的使用bug!

今天在学习使用Cookie存取时遇到的问题

    在使用Cookie存储当前**时间**时,首先应该想到第一次访问时是没有Cookie数据的。
    所以在写了一个工具类用来判断Cookie数组是否有数据,从而达到判断是不是用户第一次进入。
public class CookieUtils {

    public static Cookie findCookie(Cookie[] cookies, String name) {
        if (cookies == null) {
            //浏览器没有携带的话
            return null;
        } else {
            for (Cookie cookie : cookies) {
                if (name.equals(cookie.getName())) {
                    return cookie;
                }
            }
            //浏览器带回来Cookie但是没有指定名称的Cookie
            return null;
        }
    }
}
    之后进行判断
// 判断是否为第一次访问:从指定的Cookie中获取指定名称的Cookie
        //获取从浏览器带过来的所有Cookie
        Cookie[] cookies = req.getCookies();
        //从数组中找指定名称的Cookie
        Cookie cookie = CookieUtils.findCookie(cookies, "lastVisit");
        //判断是否为第一次访问
        if (cookie == null){
            //第一次访问
            //页面显示一段内容
            resp.setContentType("text/html;charset=UTF-8");
            resp.getWriter().println("<h1>您好!欢迎使用本系统</h1>");
        } else {
            System.out.println("111");
            //不是第一次访问
            //获取上一次的访问时间显示到页面
            String value = cookie.getValue();//相当于访问时间
            System.out.println(value);
            resp.setContentType("text/html;charset=UTF-8");
            resp.getWriter().println("<h1>您好!您的上一次访问时间为: "+value+"</h1>");
        }
        //记录当前时间
        SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
        String format = d.format(new Date());
        System.out.println(format);
        Cookie c=new Cookie("lastVisit",format);
        System.out.println(c.toString());
        //回写到浏览器
        resp.addCookie(c);
	但是发现 resp.addCookie(c);没有生效。也没有报错和异常,只是浏览器报500的错误。
	第二次请求后Cookie数组还是没有数据的状态

在这里插入图片描述
经过一系列的调试发现!resp.addCookie(c);的使用是不可以使用空格的。
因为我在记载当前日期时使用了

 SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss");
中间的格式设置有空格所以添加不上去。
后面改成了
 SimpleDateFormat d=new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
	然后解决了问题。

在这里插入图片描述
小白的自我经验。希望能帮助到和我一样学习的人。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang是一种开发高效、可靠、安全的编程语言,但也不可避免地存在一些bug或问题。其中一个与浏览器cookie相关的bug是指在处理cookie过程中会出现一些意外的错误或异常情况。 具体而言,这个bug可能涉及到使用golang的browsercookie包来处理浏览器cookie时的一些问题。该包旨在简化从浏览器中提取cookie的过程,以便在实际应用中进行处理和分析。 然而,由于浏览器cookie机制的复杂性以及不同浏览器之间的差异,这个bug可能导致我们无法正确地提取或处理cookie的相关信息。这可能会影响我们在应用程序中对用户身份验证、会话管理或其他与cookie相关的功能的处理。 为了解决这个bug,我们可以尝试以下一些方法: 1. 更新golang的browsercookie包:检查是否有最新版本可用,并尝试使用新版本的包,以期修复已知的bug。 2. 查找并报告bug:如果我们遇到了由于这个bug导致的问题,我们可以将问题报告给golang的开发团队,以便他们更好地了解并解决这个问题。 3. 自定义cookie处理机制:如果在特定场景下我们发现该包无法满足我们的需求,我们可以考虑编写自己的cookie处理逻辑,以确保我们能够正确地处理和使用浏览器中的cookie。 总之,golang的browsercookie bug是指在处理浏览器cookie时可能出现的一些问题或错误。通过更新包、报告bug或自定义处理机制,我们可以尝试解决这个bug并保证我们的应用程序能够正确地处理和利用浏览器中的cookie信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值