亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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篇
  • 參與學習       248278    人
  • 解答問題       3215    個

Java Web入門級教程JSP,帶你輕松的學習JSP基礎知識

進入課程

cookie的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號