2011-03-26 63 views
0

在ASP.net,我有下面的代碼。我正在JSP中製作一個網站並使用Java類。基本上我想要包含這個構造函數的相同功能。C#到HTTP會話Java對象

什麼是下面的C#代碼的Java代碼?

public class ShoppingCart 
{ 
    #region ListCart 

    public List<CartItem> Items { get; private set; } 

    #endregion 

    #region CartSession 


    public static readonly ShoppingCart Instance; 

    static ShoppingCart() 
    { 

     if (HttpContext.Current.Session["ASPNETShoppingCart"] == null) 
     { 
      Instance = new ShoppingCart(); 
      Instance.Items = new List<CartItem>(); 
      HttpContext.Current.Session["ASPNETShoppingCart"] = Instance; 
     } 
     else 
     { 
      Instance = (ShoppingCart)HttpContext.Current.Session["ASPNETShoppingCart"]; 
     } 
    } 
} 
+0

我不認爲這在Java中有一個確切的相似之處。我通常會在會話本身中保留對ShoppingCart的引用。您通常使用HttpServletRequest.getSession()訪​​問會話。心連心 – laher 2011-03-26 10:16:41

+0

我想知道如何知道當前會話存在,如果它不創造新的別的一個使用來自broweser – user478636 2011-03-26 10:28:06

回答

1

在Java中,你將不得不玩HttpServletRequestHttpSession(這是最優選的),因爲你存儲ShoppingCart到會話。

我不會創建一個ShoppingCart類來存儲它的實例在一個會議,因爲我的購物可以存在網絡環境之外。一個簡單的方法做你要求什麼是創建一個實用工具類存儲/檢索購物車/從會話。

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpSession; 

public class ShoppingCartUtil { 

    public static ShoppingCart getShoppingCart(HttpServletRequest request, String sessionName) { 
     return getShoppingCart(request.getSession(), sessionName); 
    } 

    public static ShoppingCart getShoppingCart(HttpSession session, String sessionName) { 
     return (ShoppingCart)session.getAttribute(sessionName); 
    } 

    public static void addShoppingCartToSession(HttpServletRequest request, String sessionName, ShoppingCart cart) { 
     addShoppingCartToSession(request.getSession(), sessionName, cart); 
    } 

    public static void addShoppingCartToSession(HttpSession session, String sessionName, ShoppingCart cart) { 
     session.removeAttribute(sessionName); 
     session.setAttribute(sessionName, cart); 
    } 
} 
+0

只是一個問題...我如何數組列表保存到會話 – user478636 2011-03-26 11:47:46

+0

還有一件事一,我將執行諸如的AddItem和SetQuantity操作,我應該這樣做,在這個類或創建一個單獨的類。 現在,我是一個有點困惑,因爲在asp.net中,我使用Session和方法的addItem和Setquantity所有 – user478636 2011-03-26 11:58:59

+1

一類@ user478636,關於第一個問題,以同樣的方式保存着購物車到會議上,這是同樣的方式保存一個數組列表 – 2011-03-26 12:13:29