2014-06-29 52 views
0

我開發JSP中的一個電子商務網站的應用程序,它不包含任何登錄或註冊的,現在我想在車中添加內容..是否有必要在電子商務創建會話

我真的需要創建一個會話來添加購物車中的數據嗎?

+0

標籤建議你要使用服務器端解決方案。您打算如何讓購物車在頁面加載之間持續存在? –

+0

我想是的,我需要它, ,因爲服務器如何記住用戶以前的選擇? 等理念? 將內容添加到購物車? – Shivam

+0

對不起,我不知道如何將內容添加到購物車? 其實我的購物車是在同一個頁面上看到的,其中列出的內容是可用的。 我認爲我應該使用javascript,來跟蹤用戶點擊併發送那些選定的內容在購物車.. 但第二次點擊購物車重新加載和系統忘記以前的選擇...請建議我正確的wayy .. – Shivam

回答

0

會話是要走的路。這是最簡單的機制,它比手動實現類似的效果更容易。

正如您所提到的,會話只是一種跟蹤用戶的方式。當10個不同的機器上有10個客戶訪問您的頁面並將其添加到他們的購物車中時,您需要一個機制來跟蹤哪個是購物車。

這是會議的工作方式:

  1. 用戶打開你的網站第一次
  2. 服務器檢查JSESSIONID的cookie值的請求
  3. JSESSIONID是不存在的,因此服務器產生一個隨機數 和第一次在響應中設置JSESIONID cookie。
  4. Server可記下這個隨機數,創建時間和最後 請求時,該用戶
  5. 瀏覽器獲取頁面的結果,但也伴隨着頁面響應
  6. 瀏覽器就會知道得到了JSESSIONID餅乾 「隨後每發送一次這個cookie 請求「
  7. 因此,對於每一個後續的用戶請求,瀏覽器本身都會發送這個cookie,而無需付出任何努力。這是使 會話變得輕鬆的部分。

就先試試這個簡單的實驗:

<% 
Integer thisUserReqCount = (Integer) session.getAttribute("reqCount"); 
if(thisUserReqCount==null) thisUserReqCount = 1; 
else thisUserReqCount++; 
session.setAttribute("reqCount", thisUserReqCount); 
%> 

Request No: <%= thisUserReqCount %> 

這裏有一個簡單的購物車例如:

<% 
Map<String, Object> thisUsersCart = (Map<String, Object>) session.getAttribute("userCart"); 
if(thisUsersCart ==null){ 
    thisUsersCart = new HashMap<String, Object>(); 
    session.setAttribute("userCart", thisUsersCart); 
} 
//Now you have the cart thisUsersCart. You can do some thing with this to get data or put data in the cart. 
%>