欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Cookie的使用bug!

程序员文章站 2022-04-26 12:05:30
...

今天在学习使用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数组还是没有数据的状态

Cookie的使用bug!
经过一系列的调试发现!resp.addCookie(c);的使用是不可以使用空格的。
因为我在记载当前日期时使用了

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

Cookie的使用bug!
小白的自我经验。希望能帮助到和我一样学习的人。。。

相关标签: java cookie