<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 簡易購物車 ? ? 就是一個簡單的購物車,還可以擴展。 實現原理: ????用戶在ShowBook頁面購書,BuyBookCl進行業務邏輯處理之后,顯示在ShowMyCart上。Book是圖書信息類,DB是一個內存圖書數據庫,用來存放初始化圖書信息。 ? 使用技術: 1、JAVASE中的ArrayList,HashMap,LinkedHashMap 2、Session技術 3、Servlet技術 4、單例 ? ~~~ package com.pc; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author Switch * 功能:顯示圖書 */ public class ShowBook extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 字符編碼 request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); out.println("<h1>歡迎購買</h1>"); // 取出DB ArrayList<Book> db = DB.getBooks(); for(Book book : db){ out.println(book.getName() + "<a href='/MyCart/BuyBookCl?id="+ book.getId() + "&name=" + book.getName() + "&price=" + book.getPrice() + "'>點擊購買</a><br/>"); } out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } } ~~~ ~~~ package com.pc; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author Switch * 功能:處理購書信息 */ public class BuyBookCl extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 字符編碼 request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); // 接收用戶購書信息 String bookname = request.getParameter("name"); String id = request.getParameter("id"); String price = request.getParameter("price"); // 從會話獲取總價 Float totalprice = (Float) request.getSession().getAttribute("totalprice"); // 將總價加入會話中 if(totalprice == null){ request.getSession().setAttribute("totalprice", Float.parseFloat(price)); } else { request.getSession().setAttribute("totalprice", totalprice + Float.parseFloat(price)); } // 從session中取出mybooks HashMap<String, Book> books = (HashMap<String, Book>) request.getSession().getAttribute("mybooks"); // 如果是第一次購物 books == 空 if(books == null){ // 創建集合對象 books = new LinkedHashMap<String, Book>(); // 創建book對象 Book book = new Book(); book.setId(id); book.setName(bookname); // 設置圖書數量為1 book.setNum(1); books.put(id, book); // 將bookd加入session request.getSession().setAttribute("mybooks", books); } else { // 檢測集合中是否有該書 if(books.containsKey(id)){ // 表示數已被購買過 // 從集合中取出圖書 Book book = books.get(id); // 數量+1 book.setNum(book.getNum() + 1); } else { // 該圖書未被購買過 Book book = new Book(); book.setId(id); book.setName(bookname); book.setNum(1); books.put(id, book); } } // 轉發到顯示購物車界面 request.getRequestDispatcher("/ShowMyCart").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } } ~~~ ~~~ package com.pc; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author Switch * 功能:顯示購物車 */ public class ShowMyCart extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 字符編碼 request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); // 從session中取出購買的書 HashMap<String, Book> books = (HashMap<String, Book>) request.getSession().getAttribute("mybooks"); // 測試 // System.out.println(books); out.println("您的購物車有以下書籍:<br/>"); Iterator iterator = books.keySet().iterator(); while(iterator.hasNext()){ Book book = books.get(iterator.next()); out.println("書名為:" + book.getName() + " 數量為:" + book.getNum()); out.println("<br/>"); } out.println("總價為:" + request.getSession().getAttribute("totalprice")); out.println("<br/>"); out.println("<a href='/MyCart/ShowBook'>返回購物大廳</a>"); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } } ~~~ ~~~ package com.pc; /** * @author Switch * 功能:存儲圖書信息 * id------id號 * name----書名 * num-----數量 * price---價格 */ public class Book { private String id; private String name; private int num; private float price; // 設置器與獲取器 public String getId() { return id; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } } ~~~ ~~~ package com.pc; import java.io.Serializable; import java.util.ArrayList; /** * * @author Switch * 功能:模擬內存數據庫,單例實現 * */ public final class DB implements Serializable{ private static ArrayList<Book> books = null; private DB(){ } // 靜態代碼塊初始化圖書信息 static{ books = new ArrayList<Book>(); Book book1 = new Book(); book1.setId("1"); book1.setName("Think in Java"); book1.setPrice(99); books.add(book1); Book book2 = new Book(); book2.setId("2"); book2.setName("Javascript權威指南"); book2.setPrice(139); books.add(book2); Book book3 = new Book(); book3.setId("3"); book3.setName("Head First Servlet & JSP"); book3.setPrice(129); books.add(book3); Book book4 = new Book(); book4.setId("4"); book4.setName("設計模式之禪"); book4.setPrice(89); books.add(book4); Book book5 = new Book(); book5.setId("5"); book5.setName("Java核心技術"); book5.setPrice(139); books.add(book5); } // 返回圖書集合 public static ArrayList<Book> getBooks() { return books; } } ~~~ ? ----------參考《韓順平.細說Servlet》
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看