📄 catalogservlet.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 CatalogServlet 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>"); // 取得dispatcher对象,将页首放在本页面 RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/head"); if (dispatcher != null) { dispatcher.include(request, response); } //加入购物车内的书目信息 String bookId = request.getParameter("bookId"); if (bookId != null) { try { BookDetails book = bookDB.getBookDetails(bookId); cart.add(bookId, book); out.println("<p><center><h3>" + "您把<font color=\"#ff0000\">" + "<i>" + book.getTitle() + "</i> " + "</font>加入了购物车" + "</h3></center>"); } catch (BookNotFoundException ex) { response.reset(); throw new ServletException(ex); } } //检查购物车是否为空,如果不为空,显示结帐和查看购物车连接 if (cart.getNumberOfItems() > 0) { out.println("<p><center><strong><a href=\"" + response.encodeURL(request.getContextPath() + "/bookshowcart") + "\">" + "查看购物车" + "</a> " + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookcashier") + "\">" + "结账" + "</a>" + "</p></strong></center>"); } out.println("<br> " + "<center> <h3>" + "请选购" + "</h3>" + "<table summary=\"layout\">"); //迭代显示书目信息 try { Collection coll = bookDB.getBooks(); Iterator i = coll.iterator(); Currency c = (Currency) session.getAttribute("currency"); if (c == null) { c = new Currency(); c.setLocale(request.getLocale()); session.setAttribute("currency", c); } while (i.hasNext()) { BookDetails book = (BookDetails) i.next(); bookId = book.getBookId(); c.setAmount(book.getPrice()); out.println("<tr>" + "<td bgcolor=\"#ffffaa\">" + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookdetails?bookId=" + bookId) + "\"> <strong>" + book.getTitle() + " </strong></a></td>" + "<td bgcolor=\"#ffffaa\" rowspan=2>" + c.getFormat() + " </td>" + "<td bgcolor=\"#ffffaa\" rowspan=2>" + "<a href=\"" + response.encodeURL(request.getContextPath() + "/bookcatalog?bookId=" + bookId) + "\"> " + "加入购物车" + " </a></td></tr>" + "<tr>" + "<td bgcolor=\"#ffffff\">" + " " + "作者:" + "<em> " + book.getName() +"</em></td></tr>"); } } catch (BooksNotFoundException ex) { response.reset(); throw new ServletException(ex); } out.println("</table></center></body></html>"); out.close(); } public String getServletInfo() { return "The Catalog servlet adds books to the user's " + "shopping cart and prints the catalog."; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -