哪位大神逐行解釋一下?有點稀里糊涂的!感謝??!
String?list?=""; ???????? ??????????????Cookie[]?cookies?=?request.getCookies(); ???????????? ??????????????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);
cookie這一章確實還需再看幾遍
2016-11-23
cookie本身是有生命周期的,即有個過期時間。
下面這段代碼的用途是來判斷是否有匹配的cookie,如果有,執行這行代碼? ?list?=?c.getValue();
?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);
實際上項目第一次被執行的時候是先執行的第2段代碼,然后第二次才是執行的第1段代碼
---------------------------------------------------------------------------------------------------
至于cookie里面存的值:
舉個例子,當我點擊的id為1的商品,?則list=“1,”;
????????????????????????點擊id為2的商品,則list ="1,2,";
因為?list+=request.getParameter("id")+",";?等同于?list = list +?request.getParameter("id")+","
即重新覆蓋原來字符串的意思。
2016-11-17
新建cookie,然后往cookie里面放東西,之后取出來遍歷,判斷有沒有超過一千