Cookie记忆上一次访问时间

Cookie记忆上一次访问时间

需求
  • 访问Servlet,如果是第一次访问,提示:你好,欢迎您首次访问
  • 若不是第一次访问,则提示:欢迎回来,您上次访问时间为:xxx
实现
  • 解决中文乱码

    • //解决中文乱码
              req.setCharacterEncoding("utf-8");
              resp.setContentType("text/html;charset=utf-8");
      
  • 新建bool变量,设置是否第一次访问

    • //是否第一次访问
              boolean firstAccess = true;
      
  • 获取当前时间

    • //获取当前时间
              Date d = new Date();
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
              String nowTime = sdf.format(d);
              System.out.println("当前时间:" + nowTime);
      
  • 获取cookie并判断是否第一次访问

    • //获取cookie
              Cookie[] cookies = req.getCookies();
              if (cookies !=null){
                  for (Cookie cookie:cookies){
                      if (cookie.getName().equals("lastTime")){
                          //不是第一次访问
                          firstAccess = false;
                          //显示时间
                          PrintWriter writer = resp.getWriter();
                          writer.write("<h1>欢迎您,上次访问时间:"+ URLDecoder.decode(cookie.getValue(), "utf-8")+"</h1>");
                          //刷新cookie
                          Cookie newCookie = new Cookie("lastTime", URLEncoder.encode(nowTime,"utf-8"));
                          cookie.setMaxAge(60*60*24*30);
                          resp.addCookie(newCookie);
                          break;
                      }
                  }
              }
      
  • 是第一次访问

    • //第一次访问
              if (firstAccess){
                  Cookie cookie = new Cookie("lastTime", URLEncoder.encode(nowTime,"utf-8"));
                  cookie.setMaxAge(60*60*24*30);
                  resp.addCookie(cookie);
                  PrintWriter writer = resp.getWriter();
                  writer.write("<h1>当前是您第一次访问本网站!</h1>");
              }
      
  • 在cookie中不可以存储空格等特殊字符

    • 使用URLEncoder、URLDecoder解决

源码:https://github.com/xiaochen0517/StudySpace/tree/master/idea/TestDemo5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌尘吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值