SpringMVC使用Cookie實現購物車功能

百度搜到有使用servlet使用Cookie實現購物車功能的,下面說一下 “SpringMVC使用Cookie實現購物車功能” 

我覺得這是理所當然SpringMVC會有封裝Cookie,因爲自然。。。

一、先看Controller的“增加到購物車”方法:

	@RequestMapping(value = "addPdt2Cart")
	public void addPdt2Cart(
			@CookieValue(value = "cartCookie",required  = false) String cartCookieStr ,
			@RequestParam(value = "pdtId") String pdtId ,
			HttpServletResponse response,
			CartDedail cartRecord , Cart cart) {

		cartRecord.setPdtId(pdtId);
		
		if (cartCookieStr == null )  {
			cart.getCartRecords().add(cartRecord);
		}else{
			JSONObject jsonCart = JSONObject.fromObject(cartCookieStr);
		    cart = (Cart) JSONObject.toBean(jsonCart,Cart.class);  // Json轉換成對象Cart
			cart.getCartRecords().add(cartRecord);
		}
		
		String cartCookie = JSONObject.fromObject(cart).toString();//Cart轉換成對象Json
		Cookie cookie = new Cookie("cartCookie",cartCookie);
		cookie.setMaxAge(60*60*24*7);//保留7天
		response.addCookie(cookie);
		
	}


主要使用到@CookieValue 這個註解 ,綁定請求的一個cookie。用到它兩個屬性

1.  value : cookie的名字

2. required   這個boolean類型的,指明是否爲必須,默認是true,所以請求裏沒有指定的cookie會報異常,要設爲false.

                       畢竟第一次增加到購物車時是沒有指定那個cookie的。

3. 把cookie添加到response裏面;如果方法類型是Cookie,SpringMVC自動幫你加到response裏,前提是之前要有那個cookie,找不到則綁定不了。

4. 可以自己解釋接受到的cookie的json數據,這裏我用Json-lib 的jar包,可以把它轉換成對象;

    Json-lib 的依賴包在Maven Pom.xml的配置如下:

    

	<dependency>
		<groupId>net.sf.json-lib</groupId>
		<artifactId>json-lib</artifactId> 
		<version>2.4</version>
		<classifier>jdk15</classifier>
	</dependency>

二、查看購車

也是一樣,@CookieValue get到cookie後解析json數據就可以了。

            

發佈了26 篇原創文章 · 獲贊 7 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章