java Cookie实战教程之留下的痕迹

来源:互联网 发布:linux mysql命令 编辑:程序博客网 时间:2024/05/21 07:28

       今晚我们来聊聊java技术,java的应用是非常广泛的,比如桌面程序,安卓apk程序,今天我们说说java web网站应用的一个非常有用且重要的技术:CookieCookie的应用面很多,比如网站商品的浏览历史,记住用户名等等应用场景,我们今天讲解一个实际的案例:记录用户上次访问页面的时间

       下面我分享代码,并且会给代码加上我的讲解注释,帮助各位童鞋理解。

           // 获取本地所有的cookie,得到一个cookie的数组

       Cookie cookies[] = request.getCookies();
       // 设置一个boolean变量,来标记是否找到我们需要的cookie
       boolean b=false;
       // for对象数组循环,循环的cookies数组,而每一次创建一个ck的cookie对象
      for(Cookie ck:cookies){
         if("lastVisit".equals(ck.getName())){
            // 说明存在上次访问该页面的cookie
            b=true;
           // 读取cookie,利用getValue()方法
           String time = ck.getValue();
           out.println("上一次登录时间是:"+time);

           // 利用SimpleDateFormat对象的format方法,格式化当前时间
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
           String nowTime = sdf.format(new java.util.Date());

           // 更新Cookie中lastVisit的值,否则无法记录上次最新的访问时间
           Cookie cookie = new Cookie("lastVisit",nowTime);

           // 设置Cookie的生命周期,一般是一周
           cookie.setMaxAge(7*24*3600);

           // 利用http的response对象,将Cookie存储到本地
           response.addCookie(cookie);
           // 找到cookie就退出for循环
           break;
           }

          // 说明是第一次访问该页面,Cookie中还没有lastVisit的值
          if(!b){
              out.println("您第一次访问该页面!");
              // 格式化当前时间,并且把时间保存到cookie中
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             String nowTime = sdf.format(new java.util.Date());
             Cookie cookie=new Cookie("lastVisit",nowTime);
             cookie.setMaxAge(7*24*3600);
             response.addCookie(cookie);
          }

         好了,今晚的Cookie技术分享到此结束,大家有什么疑问,可以留言和我讨论,很开心与大家一起进步!

         大家可以关注我的微信公众号:iwork,我会每天推送一篇原创文章,让大家都能有所收获!




0 0
原创粉丝点击