天天看點

使用cookie儲存使用者的浏覽記錄

我們在寫關于使用者對商品額的浏覽記錄的時候一般使用cookie進行記錄,cookie一般儲存字元串比較常用,如果想儲存對象可以使用序列化,這裡不做過多的解釋,我們現在隻做簡單的cookie應用,cookie中儲存字元串。

我們将商品的照片路徑(字元串)儲存在cookie中進而實作對使用者的浏覽資訊進行記錄。每個商品都有自己的id,每個使用者也有自己的id,當我們對某一個使用者的浏覽資訊進行記錄的時候,我們就可以使用商品的id和使用者的id形成唯一的字元串,作為cookie的值,進而達到記錄不同使用者的浏覽資訊。

設定cookie

Cookie goodsImageCookie = null;	
			//goodsImage為商品的圖檔路徑,如有中文存值還要進行編碼,取值進行解碼
			//id為商品的id, userId為使用者的id(這兩個參數應該是從前台傳來的,不管你以何種形式傳)
			goodsImageCookie = new Cookie("goodsImage"+id+"user"+userId,goodsImage);											
			goodsImageCookie.setPath("/store/");//設定cookie的可見級别(說法有點不正确)
			//第一個“/”表示webapp下的根目錄,
			//上面的“/store/”此cookie對webapp下的store應用可見,一般設定成“/項目名/”			
			goodsImageCookie.setMaxAge(86400);//此cookie的有效期,機關為妙						
			response.addCookie(goodsImageCookie);//添加cookie
           

讀取cookie中儲存的值。

Cookie cookie [] = request.getCookies();//擷取所有cookie
	  	if(cookie!=null && cookie.length>0){
	  		for(Cookie c:cookie){
	  			String goods = c.getName();//擷取cookie的名字。uid使用者的id
	  			if(goods.indexOf("goodsImage")!=-1 && goods.indexOf("user"+uid)!=-1){//用使用者id的唯一性定位cookie儲存的值屬于哪個使用者
	  				list.add(0,c.getValue());//若此cookie名字滿足要求,擷取此cookie,添加到list
	  			}	  				  		
	  		}
	  	}
           

上面我們對cookie進行了儲存和取值,上面就是一個使用cookie記錄使用者浏覽記錄的簡單實作,我們使用商品的id确定是哪個商品,使用使用者的id确定是哪個使用者,以達到形成唯一的cookie名字,這樣我們就唯一确定了一個商品的是被哪個使用者浏覽的,達到了記錄使用者的浏覽記錄的功能。如果我們需要在浏覽記錄中顯示浏覽的時間,商品的名字,價格等都可以使用此方法,唯一的确定cookie的名字,然後對每個cookie名字進行解析,找到相應的cookie,從中取值。