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还是根据判断结果追加的?没看懂,求解释。。
上面是先去获取有没有已经存过的Cookie,跟着就判断Cookie是否为null,如果是null,表示没有存过Cookie。又判断了它的长度是不是大于0,如果等于0,就表示已经存过Cookie,但是Cookie中没有数据。最后创建的 Cookie cookie = new Cookie("listcookie",list);是保存数据的临时Cookie对象,把这个对象保存在response中才能在本地建立一个Cookie文件保存Cookie对象中的数据。