C # для Java объекта сеанса Http - PullRequest
0 голосов
/ 26 марта 2011

В ASP.net у меня есть следующий код.Я делаю сайт на JSP и использую классы Java.По сути, я хочу включить ту же функциональность этого конструктора.

Что такое код Java для следующего кода C #?

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"];
        }
    }
}

1 Ответ

1 голос
/ 26 марта 2011

В Java вам придется играть с HttpServletRequest или HttpSession (что наиболее предпочтительно), поскольку вы сохраняете ShoppingCart в сеансе.

Я бы не стал создавать 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);
    }
}
...