为了账号安全,请及时绑定邮箱和手机立即绑定

cookie是下面创建的,那上面获取的是啥?

String list = "";

      //从客户端获得cookie集合

      Cookie[] cookies = request.getCookies();

      if(cookies!=null&&cookies.length>0){

      //遍历

      for(Cookie c:cookies){

      if(c.getName().equals("listcookie")){

      list = c.getValue();

      }

      }

      }

      list+=request.getParameter("id")+",";

      //如果浏览记录超过1000,清零

      //按,把list分隔,并放到数组arr

      String[] arr = list.split(",");

      if(arr!=null&&list.length()>0){

      if(arr.length>=1000){

      list = "";

      }

      }

      Cookie cookie = new Cookie("listcookie",list);

      response.addCookie(cookie);


问题:下面才创建的键值对是("listcookie",list),上面是咱们获取到的?就算创建的位置没有关系,那上面又是怎么用.equals方法判断的,而且list还是根据判断结果追加的?没看懂,求解释。。


正在回答

1 回答

上面是先去获取有没有已经存过的Cookie,跟着就判断Cookie是否为null,如果是null,表示没有存过Cookie。又判断了它的长度是不是大于0,如果等于0,就表示已经存过Cookie,但是Cookie中没有数据。最后创建的 Cookie cookie = new Cookie("listcookie",list);是保存数据的临时Cookie对象,把这个对象保存在response中才能在本地建立一个Cookie文件保存Cookie对象中的数据。

0 回复 有任何疑惑可以回复我~
#1

Lion_ssg 提问者

懂了,多谢
2017-07-21 回复 有任何疑惑可以回复我~
#2

Lion_ssg 提问者

还有个疑问,每次刷新detail后都会new一个cookie吗?还是刷新之前在客户端保存的cookie?代码写的是new啊,这个怎么理解?
2017-07-21 回复 有任何疑惑可以回复我~
#3

慕天心 回复 Lion_ssg 提问者

如果以前存在Cookie,那么在new的时候你可以理解为新建了一个Cookie替换了原来的Cookie,也可以理解为把新的Cookie对象追加到原来的Cookie中。因为在每次刷新的时候cookie文件的修改时间都改变过了,这说明在每次刷新的时候cookie文件都改变过!
2017-07-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

cookie是下面创建的,那上面获取的是啥?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信