import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ShoppingCartServlet extends HttpServlet implements SingleThreadModel { private String name; private Integer balance; private ArrayList items; private ArrayList prices; private String item; private int price; private Integer total; public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); name = (String)session.getValue("name"); total = (Integer)session.getValue("total"); balance = (Integer)session.getValue("balance"); items = (ArrayList)session.getValue("items"); prices = (ArrayList)session.getValue("prices"); int size = prices.size(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("Shopping Cart" + "

" + name + "'s Shopping Cart

"); for (int i = 0;i < size;i++) { out.println(""); } out.println(""); out.println("" + ""); out.println("" + ""); out.println("
" + items.get(i) +"" + prices.get(i) + "
" + "


Total: " + total + "
" + "" + "
Balance: " + balance + "
" + "
"); out.close(); } public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); items = (ArrayList)session.getValue("items"); prices = (ArrayList)session.getValue("prices"); balance = (Integer)session.getValue("balance"); total = (Integer)session.getValue("total"); price = Integer.parseInt(request.getParameter("price")); if((balance.intValue() - price) >= 0) { items.add(request.getParameter("item")); prices.add(request.getParameter("price")); total = new Integer(total.intValue() + price); balance = new Integer(balance.intValue() - price); session.putValue("items",items); session.putValue("prices",prices); session.putValue("total",total); session.putValue("balance",balance); doGet(request,response); } else { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("Insufficient Funds" + "

Insufficient Funds

"); } } }