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

cookie的问题

 <%
              String list ="";
              //从客户端获得Cookies集合
              Cookie[] cookies = request.getCookies();
              //遍历这个Cookies集合
              if(cookies!=null&&cookies.length>0)
              {
                  for(Cookie c:cookies)
                  {
                      if(c.getName().equals("ListViewCookie"))
                      {
                         list = c.getValue();
                      }
                  }
              }
              
              list+=request.getParameter("id")+",";
              //如果浏览记录超过1000条,清零.
              String[] arr = list.split(",");
              if(arr!=null&&arr.length>0)
              {
                  if(arr.length>=1000)
                  {
                      list="";
                  }
              }
              Cookie cookie = new Cookie("ListViewCookie",list);
              response.addCookie(cookie);
          
          %>


明明listviewCookie是后面才创建的,但在前面就引用,这样可以么,代码执行顺序不是从上到下?还是因为先编译完了,对象都加载完了,所以调用没关系?不是很清楚。

正在回答

2 回答

    当你用浏览器请求某个服务器时,浏览器会将该服务器存放在本地的cookie(可能有,也可能没有,这是你判断cookies是否为null以及长度是否大于0的原因)放入请求中,而listviewCookie是一段字符串,是其中一个cookie名称。如果你之前存放在本地的cookie中有叫这个名称的cookie,那么就能取到这个cookie(就是你遍历cookie中equals判断的原因)。所以listviewCookie并不是后面才创建的,而是来自你浏览存放在本地的cookie中的,可能存在也可能不存在,如果存在的话,服务器收到浏览器的请求时,就会在这次请求对应的request对象中创建此cookie(名称为listviewCookie)。

    你后面的代码:Cookie cookie = new Cookie("ListViewCookie",list);是创建了一个新的cookie对象,这个cookie名称为ListViewCookie,值为list。将这个cookie对象放入response对象后,浏览器获得服务器的响应后,将从response中获取这个cookie并将它存放在本地(如果之前有来自该服务器并且也叫这个名称的cookie则会覆盖之前的)。当你再次访问这个服务器的时候,就会将该服务器存放在本地的cookie放入请求中发送至服务器(这里就可以接到上一段开始了)。

    表达无力,不好意思。

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

qq_lzY 提问者

非常感谢!
2016-11-08 回复 有任何疑惑可以回复我~

简单点说 就是当你第一次点击商品的时候还没有一个键值名为listviewcookie的cookie对象(这也是设计的核心所在,因为当你在创建一个listviewcookie的cookie对象时它会覆盖你之前的名为listviewcookie的cookie对象的值从而实现字符串追加的目的并将他保存在cookie中),所以会跳过判断,执行list追加字符串后的语句

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

举报

0/150
提交
取消
JAVA遇见HTML——JSP篇
  • 参与学习       248282    人
  • 解答问题       3071    个

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

进入课程

cookie的问题

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