JSP實現的簡單購物車

xybw 9年前發布 | 7K 次閱讀 Java

goods_form.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>歡迎光臨購物車</title>
<style type="text/css">
h1 {
    color: #F66;
}
</style>
</head>

<body>
<div align="center">
  <h1> 歡迎光臨購物車 </h1>
  <form name="form1" method="post" action="goods_do.jsp" target="">
    <table width="80%" border="0">
      <tr>
        <td width="50%" height="30" align="right"> 請選擇您要購買的商品: </td>
        <td width="50%" height="30" align="left">&nbsp;
          <select name="GoodsName">
            <option value="電腦" selected> 電腦 </option>
            <option value="MP3"> MP3 </option>
            <option value="MP4"> MP4 </option>
            <option value="MP5"> MP5 </option>
            <option value="洗衣機"> 洗衣機 </option>
            <option value="電視機"> 電視機 </option>
          </select></td>
      </tr>
      <tr>
        <td width="50%" height="30" align="right"> 購買數量: </td>
        <td width="50%" height="30" align="left">&nbsp;
          <input type="text" name="GoodsNumber" value="1" size="5"></td>
      </tr>
    </table>
    <p>
      <input type="submit" name="sub" value="提交">
      &nbsp;&nbsp;
      <input type="reset" name="res" value="重購">
    </p>
  </form>
</div>
</body>
</html>

goods_do.jsp
<%@ page contentType="text/html; charset=utf-8" language="java"%>
<%@ page import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>歡迎光臨購物車</title>
        <jsp:useBean id="Goods" scope="session" class="com.demo.Goods" />
        <style type="text/css">
td {
    color: #333;
    font-family: "微軟雅黑", Verdana, sans-serif, "宋體";
    width: 150px;
    border-bottom-width: 1px;
    border-bottom-style: dashed;
    border-bottom-color: #999;
}

table {
    width: 400px;
    text-align: center;
    margin-right: auto;
    margin-left: auto;
    border: 2px solid #666;
}

h1 {
    color: #F66;
}
</style>
    </head>
    <%
        //設置編碼格式
        request.setCharacterEncoding("utf-8");
        //獲取所要添加到購物車的商品名稱和數量
        String sGoodsName = request.getParameter("GoodsName");
        String sGoodsNumber = request.getParameter("GoodsNumber");
        //根據商品名稱是否為空判斷是否需要保存商品信息
        if (sGoodsName != null && sGoodsName != "") {
            int iGoodsNumber = Integer.parseInt(sGoodsNumber);
            Goods.add(sGoodsName, iGoodsNumber);
        }

        //獲取購物車對象信息
        Hashtable h = Goods.show();
        //獲取購物車中所有商品名稱
        Enumeration e = h.keys();
        //keys(),返回此哈希表中的鍵的枚舉。
    %>
    <body>
        <div align="center">
            <h1>
                歡迎光臨購物車
            </h1>
            <p>
                您的購物信息如下:
            </p>
            <table>
                <%
                    while (e.hasMoreElements()) {
                        //根據商品名稱獲得相應商品數量
                        String sTemp = e.nextElement().toString();
                        int iTemp = ((Integer) h.get(sTemp)).intValue();
                %>
                <tr>
                    <td><%=sTemp%>:
                    </td>
                    <td><%=iTemp%></td>
                    <td>
                        <br>
                        <form action="goods_delete.jsp" method="post">
                            <input name="deleteName" type="hidden" value="<%=sTemp%>">
                            <input name="delete" type="submit" value="移除">
                        </form>

                    </td>
                </tr>
                <%
                    }
                %>
            </table>
            <p>
                <input type="button" name="goon" value="繼續購物"
                    onClick="javascript:window.location='goods_form.html'">
            </p>
        </div>
    </body>
</html>

goods_delete.jsp
<%@ page contentType="text/html; charset=utf-8" language="java"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>歡迎光臨購物車</title>
        <jsp:useBean id="Goods" scope="session" class="com.demo.Goods" />
    </head>
    <body>
        <div align="center">
            <h1>
                歡迎光臨購物車
            </h1>
            <%
                request.setCharacterEncoding("utf-8");
                //獲取所要刪除的商品名稱
                String sGoodsName = request.getParameter("deleteName");
                //刪除對應的商品信息
                Goods.delete(sGoodsName);
                //跳轉當前頁面
                response.sendRedirect("goods_do.jsp");
            %>
        </div>
    </body>
</html>



Goods.java
package com.demo;

import java.util.*;
import java.io.*;

/**
 * 購物車
 * 
 */
public class Goods implements Serializable {
    public Hashtable Goods = new Hashtable();

    // 構造函數
    public void Goods() {
    }

    // 將某個商品信息加入購物車
    public void add(String GoodsName, int GoodsNumber) {
        if (Goods.containsKey(GoodsName))
        // containsKey,測試指定對象是否為此哈希表中的鍵。
        {// 購物車中存在此商品
            int iTemp = ((Integer) Goods.get(GoodsName)).intValue();
            // intValue(),以 int 類型返回該 Integer 的值。
            iTemp = iTemp + GoodsNumber;
            Goods.put(GoodsName, new Integer(iTemp));
        } else {// 購物車中不存在此商品
            Goods.put(GoodsName, new Integer(GoodsNumber));
        }
    }

    // 獲取購物車中所有商品
    public Hashtable show() {
        return Goods;
    }

    // 從購物車中刪除一件商品
    public void delete(String GoodsName) {
        int num = Integer.parseInt(Goods.get(GoodsName).toString()) - 1;
        if (num == 0) {
            Goods.remove(GoodsName);
        } else {
            Goods.put(GoodsName, num);
        }
    }
}
 本文由用戶 xybw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!