📄 showcartservlet.java
字号:
package servlets;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import database.*;import cart.*;import util.Currency;import exception.*;public class ShowCartServlet extends HttpServlet { private BookDBAO bookDB; public void init() throws ServletException { bookDB = (BookDBAO) getServletContext() .getAttribute("bookDB"); if (bookDB == null) { throw new UnavailableException("Couldn't get database."); } } public void destroy() { bookDB = null; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取用户 session 和 购物车对象 HttpSession session = request.getSession(true); ShoppingCart cart = (ShoppingCart) session.getAttribute("cart"); // 如果没有购物车,创建新的购物车 if (cart == null) { cart = new ShoppingCart(); session.setAttribute("cart", cart); } //设置 content-type response.setContentType("text/html;charset=gb2312"); response.setBufferSize(8192); PrintWriter out = response.getWriter(); out.println("<html>" + "<head><title>BookStore</title></head>"); // 把数据写入响应流 RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/head"); if (dispatcher != null) { dispatcher.include(request, response); } /* 从购物车中删除选中的物品 */ String bookId = request.getParameter("Remove"); BookDetails bd; if (bookId != null) { try { bd = bookDB.getBookDetails(bookId); cart.remove(bookId); out.println("<center>删除<font color=\"#ff00000\" size=\"+2\">" + "<strong>" + bd.getTitle() + "</strong> <br> <br>" + "</font></center>"); } catch (BookNotFoundException ex) { response.reset(); throw new ServletException(ex); } } else if (request.getParameter("Clear") != null) { cart.clear(); out.println("<center><font color=\"#ff0000\" size=\"+2\"><strong>" + "清空购物车" + "</strong> <br> <br> </font></center>"); } // 打印购物车内的物品总量 int num = cart.getNumberOfItems(); if (num > 0) { out.println("<center><font size=\"+2\">" + "购物清单 共" + num +"项</font><br> "); // 打印购物清单 out.println("<table summary=\"layout\">" + "<tr>" + "<th align=left>" + "数量" + "</TH>" + "<th align=left>" + "书名" + "</TH>" + "<th align=left>" + "单价" + "</TH>" + "</tr>"); Iterator i = cart.getItems() .iterator(); Currency c = (Currency) session.getAttribute("currency"); if (c == null) { c = new Currency(); c.setLocale(request.getLocale()); session.setAttribute("currency", c); } while (i.hasNext()) { ShoppingCartItem item = (ShoppingCartItem) i.next(); bd = (BookDetails) item.getItem(); c.setAmount(bd.getPrice()); out.println("<tr>" + "<td align=\"right\" bgcolor=\"#ffffff\">" + item.getQuantity() + "</td>" + "<td bgcolor=\"#ffffaa\">" + "<strong><a href=\"" + response.encodeURL(request.getContextPath() + "/bookdetails?bookId=" + bd.getBookId()) + "\">" + bd.getTitle() + "</a></strong>" + "</td>" + "<td bgcolor=\"#ffffaa\" align=\"right\">" + c.getFormat() + "</td>" + "<td bgcolor=\"#ffffaa\">" + "<strong>" + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookshowcart?Remove=" + bd.getBookId()) + "\">" + "删除" + "</a></strong>" + "</td></tr>"); } c.setAmount(cart.getTotal()); // 打印总计 out.println("<tr><td colspan=\"5\" bgcolor=\"#ffffff\">" + "<br></td></tr>" + "<tr>" + "<td colspan=\"2\" align=\"right\"" + "bgcolor=\"#ffffff\">" + "总计" + "</td>" + "<td bgcolor=\"#ffffaa\" align=\"right\">" + c.getFormat() + "</td>" + "</td><td><br></td></tr></table>"); // 导航信息 out.println("<p> <p><strong><a href=\"" + response.encodeURL(request.getContextPath() + "/bookcatalog") + "\">" + "继续购物" + "</a> " + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookcashier") + "\">" + "结账" + "</a> " + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookshowcart?Clear=clear") + "\">" + "清空购物车" + "</a></strong></center>"); } else { // 购物车为空显示如下内容 out.println("<center><font size=\"+2\">" + "购物车内没有物品" + "</font>" + "<br> <br>" + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookcatalog") + "\">" + "返回商品列表" + "</a> </center>"); } out.println("</body> </html>"); out.close(); } public String getServletInfo() { return "The ShowCart servlet returns information about" + "the books that the user is in the process of ordering."; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -