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

这一段代码什么意思,cookies的名字可以随便起的吗?那if(c.getName().equals("ListViewCookie")何时会不成立?

这一段代码什么意思,cookies的名字可以随便起的吗?那if(c.getName().equals("ListViewCookie")何时会不成立?

正在回答

3 回答

String list="";
Cookie[] cookies=request.getCookies();  //获取当前的cookie值
for(Cookie c:cookies){                                //循环遍历所有cookie
if(c.getName().equals("ListViewCookie")){  //判断现有的cookie是否有名为ListViewCookie的,如果有
list=c.getValue();            //用c.getValue()取出来

}
}
list+=request.getParameter("id")+",";    //如果之前的cookie列表中没有名为ListViewCookie的cookie,则此时list是为空的,那么就获取商品的id号,加到list中。如果list不为空,那么list中存储的就是之前的浏览记录,那么这条语句就是在原来浏览记录的基础上,再加入新的商品id,这样保证list中永远是所有的浏览记录。后面的代码就是超过1000条后清零。

最后,Cookie cookie=new Coolie("ListViewCookie",list);这条语句,就是将商品浏览记录中商品的id,也就是list添加到cookie。

可能你理解是先加cookie才能判断, 这里不是,这里是先 判断cookie是否存在,然后做一系列处理,最后才是添加cookie。          

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

好帮手慕珊 回复 鲜衣 提问者

想法没错,呵呵,没有什么嫌弃的,初学者像你开始的理解很正常,因为以前学的都是先设置值,然后才取值的。
2015-09-21 回复 有任何疑惑可以回复我~
#2

鲜衣 提问者

非常感谢你!
2015-09-21 回复 有任何疑惑可以回复我~

请问@pang,我的理解是:

for(Cookie c:cookies){
if(c.getName().equals("ListViewCookie")){
list=c.getValue();
}
}

这一步将最后一个(也是最新一个cookie的值取出来,比如这个值是a,然后通过

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

这时候list的最终值是list=a1, ;

在ItemDAO类取出的时候:

public ArrayList<Items> getViewList(String list){
ArrayList<Items> itemlist=new ArrayList<Items>();
if(list!=null&&list.length()>0){
String[] arr = list.split(",");
int iCount=5;
if(arr.length>5){
for(int i=arr.length;i>=arr.length-iCount;i--){
itemlist.add(getItemsById(Integer.parseInt(arr[i])));
}
}else{。。。。。

这一句话itemlist.add(getItemsById(Integer.parseInt(arr[i])));是不是表明arr[i]的值是一个数字形式的?

那么list=c.getValue();取到的值肯定是数字形式的。

不知道这样想是不是对的,还望批评指正?


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

好帮手慕珊

这一句话itemlist.add(getItemsById(Integer.parseInt(arr[i]))); c.getValue()取出来的值是什么形式和arr[i]的值无关,getValue()方法的返回值就是String类型的。
2015-09-19 回复 有任何疑惑可以回复我~

cookie的名字可以随便起,如果没有name为ListViewCookie的cookie时,if语句就不成立了

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

鲜衣 提问者

你好,谢谢你!我看前后文都没有为Cookie命名,请问LisViewCookie是如何出现的呢? 还有一个问题就是请问list的赋值过程是怎么样的呢? String list=""; Cookie[] cookies=request.getCookies(); for(Cookie c:cookies){ if(c.getName().equals("ListViewCookie")){ list=c.getValue(); } } list+=request.getParameter("id")+",";
2015-09-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这一段代码什么意思,cookies的名字可以随便起的吗?那if(c.getName().equals("ListViewCookie")何时会不成立?

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