分享

用jsp实现一个简单的购物车web应用系统。

 離開╭ァ會沉淪 2011-01-03
1. 在自己建立的WEB工程中,建立包shopcart.dto,在相应的包中添加类Product.java ,ShopCart.java
1./*类Product */
2.3.package shopcart.dto;
4.5.import java.io.Serializable;
6.7.public class Product implements Serializable
8.{
9.    private String id;//产品标识 10.    private String name;//产品名称 11.    private String description;//产品描述 12.    private double price;//产品价格 13.14.    public Product()
15.    {
16.    }
17.18.    public Product(String id, String name, String description, double price)
19.    {
20.        this.id = id;
21.        this.name = name;
22.        this.description = description;
23.        this.price = price;
24.    }
25.26.    public void setId(String id)
27.    {
28.        this.id = id;
29.    }
30.31.    public void setName(String name)
32.    {
33.        this.name = name;
34.    }
35.36.    public void setDescription(String description)
37.    {
38.        this.description = description;
39.    }
40.41.    public void setPrice(double price)
42.    {
43.        this.price = price;
44.    }
45.46.    public String getId()
47.    {
48.        return id;
49.    }
50.51.    public String getName()
52.    {
53.        return name;
54.    }
55.56.    public String getDescription()
57.    {
58.        return description;
59.    }
60.61.    public double getPrice()
62.    {
63.        return price;
64.    }
65.}
66./*类ShopCart */
67.68.package shopcart.dto;
69.70.import java.io.Serializable;
71.import java.util.*;
72.73.public class ShopCart implements Serializable
74.{
75.    public ShopCart()
76.    {
77.    }
78.79.    private List cart = null;
80.81.    /**
82.     * 添加一个产品到购物车
83.     * @param product Product
84.     */
85.    public void addProductToCart(Product product)
86.    {
87.        if (cart == null)
88.            cart = new ArrayList();
89.        Iterator it = cart.iterator();
90.        while (it.hasNext())
91.        {
92.            Product item = (Product) it.next();
93.            if (item.getId().equals(product.getId()))
94.            {
95.                return;
96.            }
97.        }
98.        cart.add(product);
99.    }
100.101.    /**
102.     * 从购物车中删除一产品
103.     * @param productId String 产品id
104.     */
105.    public void removeProductFromCart(String productId)
106.    {
107.        if (cart == null)
108.            return;
109.        Iterator it = cart.iterator();
110.        while (it.hasNext())
111.        {
112.            Product item = (Product) it.next();
113.            if (item.getId().equals(productId))
114.            {
115.                it.remove();
116.                return;
117.            }
118.        }
119.    }
120.121.    /**
122.     * 计算购物车中的商品价格
123.     * @return double 商品价格总数
124.     */
125.    public double getAllProductPrice()
126.    {
127.        if (cart == null)
128.            return 0;
129.        double totalPrice = 0;
130.        Iterator it = cart.iterator();
131.        while (it.hasNext())
132.        {
133.            Product item = (Product) it.next();
134.            totalPrice += item.getPrice();
135.        }
136.        return totalPrice;
137.    }
138.139.    /**
140.     * 返回购物车所有产品信息
141.     * @return List
142.     */
143.    public List getAllProductsFromCart()
144.    {
145.        return cart;
146.    }
147.}
148.149.2.在WebRoot目录下添加包shopCart  在里边添加ShowProductsJSP.jsp   ShoppingJSP.jsp  ShopCartJSP.jsp
ShowProductsJSP.jsp   :::::::::
1.<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
2.<%@ page import="shopcart.dto.*"%>
3.<%
4.    String path = request.getContextPath();
5.    String basePath = request.getScheme() + "://"
6.            + request.getServerName() + ":" + request.getServerPort()
7.            + path + "/";
8.%>
9.10.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
11.<html>
12.    <head>
13.        <base href="<%=basePath%>">
14.15.        <title>My JSP 'ShowProductsJSP.jsp' starting page</title>
16.17.        <meta http-equiv="pragma" content="no-cache">
18.        <meta http-equiv="cache-control" content="no-cache">
19.        <meta http-equiv="expires" content="0">
20.        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
21.        <meta http-equiv="description" content="This is my page">
22.        <!--
23.    <link rel="stylesheet" type="text/css" href="styles.css">
24.    -->
25.26.    </head>
27.28.    <body bgcolor="#ffffff">
29.        <%
30.            Map products = new HashMap();
31.            products.put("001", new Product("001", "mp3播放器",
32.                    "效果很不错的mp3播放器,存储空间达1GB", 999.00));
33.            products.put("002", new Product("002", "数码相机", "象素500万,10倍光学变焦",
34.                    2500.00));
35.            products.put("003", new Product("003", "数码摄像机",
36.                    "120万象素,支持夜景拍摄,20倍光学变焦", 5999.00));
37.            products.put("004", new Product("004", "迷你mp4",
38.                    "市面所能见到的最好的mp4播放器,国产", 1999.99));
39.            products.put("005", new Product("005", "多功能手机",
40.                    "集mp3播放、100万象素数码相机,手机功能于一体", 2199.99));
41.            ServletContext context = getServletContext();
42.        context.setAttribute("products", products);
43.        %>
44.        <H1>
45.            产品显示
46.        </H1>
47.        <a href="/helloApp/shopCart/ShowCartJSP.jsp">查看购物车</a>
48.49.        <form name="productForm" action="/helloApp/shopCart/ShoppingJSP.jsp" method="POST">
50.            <input type="hidden" name="action" value="purchase">
51.            <table border="1" cellspacing="0">
52.                <tr bgcolor="#CCCCCC">
53.                <tr bgcolor="#CCCCCC">
54.                    <td>
55.                        序号
56.                    </td>
57.                    <td>
58.                        产品名称
59.                    </td>
60.                    <td>
61.                        产品描述
62.                    </td>
63.                    <td>
64.                        产品价格(¥)
65.                    </td>
66.                    <td>
67.                        添加到购物车
68.                    </td>
69.                </tr>
70.                <%
71.                    Set productIdSet = products.keySet();
72.                    Iterator it = productIdSet.iterator();
73.                    int number = 1;
74.            
75.                    while (it.hasNext()) {
76.                        String id = (String) it.next();
77.                        Product product = (Product) products.get(id);
78.                        %><tr>
79.                    <td>
80.                        <%=number++ %></td>
81.                    <td>
82.                        <%=product.getName()%>
83.                    </td>
84.                    <td><%=product.getDescription() %>
85.                    </td>
86.                    <td>
87.                        <%=product.getPrice() %></td>
88.                    <td>
89.                        <input type="checkbox" name="productId"
90.                            value="<%=product.getId() %>">
91.                    </td>
92.                </tr>
93.                    <% }%>
94.            </table>
95.            <p>
96.                <input type="reset" value="全部取消" />
97.                <input type="submit" value="确定" />
98.            </p>
99.        </form>
100.    </body>
101.</html>
102.ShoppingJSP.jsp::::::::::
1.<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
2.<%@ page import="shopcart.dto.*"%>
3.<%
4.    String path = request.getContextPath();
5.    String basePath = request.getScheme() + "://"
6.            + request.getServerName() + ":" + request.getServerPort()
7.            + path + "/";
8.%>
9.10.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
11.<html>
12.    <head>
13.        <base href="<%=basePath%>">
14.15.        <title>My JSP 'shopping.jsp' starting page</title>
16.17.        <meta http-equiv="pragma" content="no-cache">
18.        <meta http-equiv="cache-control" content="no-cache">
19.        <meta http-equiv="expires" content="0">
20.        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
21.        <meta http-equiv="description" content="This is my page">
22.        <!--
23.    <link rel="stylesheet" type="text/css" href="styles.css">
24.    -->
25.26.    </head>
27.28.    <body bgcolor="#ffffff">
29.        <%
30.            try{
31.            response.setContentType("text/html; charset=GBK");
32.            HttpSession mysession = request.getSession();
33.            ServletContext context = getServletContext();
34.            ShopCart cart = (ShopCart) mysession.getAttribute("shopCart");
35.            String action = request.getParameter("action");
36.            if ("remove".equals(action)) {
37.                String removeId = request.getParameter("removeId");
38.                cart.removeProductFromCart(removeId);
39.            } else if(action.equals("purchase")){
40.                String[] productIds = request.getParameterValues("productId");
41.42.                Map products = (Map) context.getAttribute("products");
43.                if (cart == null) {
44.                    cart = new ShopCart();
45.                    mysession.setAttribute("shopCart", cart);
46.                }
47.                if (productIds == null) {
48.                    productIds = new String[0];
49.                }
50.                for (int i = 0; i < productIds.length; i++) {
51.                    Product product = (Product) products.get(productIds[i]);
52.                    cart.addProductToCart(product);
53.                }
54.            }
55.            }catch(NullPointerException e)
56.            {e.printStackTrace();}
57.        %>
58.        <jsp:forward page="/shopCart/ShowCartJSP.jsp"></jsp:forward>
59.60.    </body>
61.</html>
ShopCartJSP.jsp:::::::::
1.<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
2.<%@ page import="shopcart.dto.*" %>
3.<%
4.String path = request.getContextPath();
5.String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6.%>
7.8.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
9.<html>
10.  <head>
11.    <base href="<%=basePath%>">
12.    
13.    <title>My JSP 'ShowCartJSP.jsp' starting page</title>
14.    
15.    <meta http-equiv="pragma" content="no-cache">
16.    <meta http-equiv="cache-control" content="no-cache">
17.    <meta http-equiv="expires" content="0">    
18.    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
19.    <meta http-equiv="description" content="This is my page">
20.    <!--
21.    <link rel="stylesheet" type="text/css" href="styles.css">
22.    -->
23.24.  </head>
25.  
26.  <body><% 
27.  HttpSession mysession = request.getSession();
28.        ShopCart cart = (ShopCart) mysession.getAttribute("shopCart");
29.    List products = null;
30.            if (cart == null
31.                    || (products = cart.getAllProductsFromCart()) == null) {
32.        %>
33.        
34.        <h1>
35.            你目前没有购买任何产品
36.        </h1>
37.        
38.        <p>
39.            <a href="/shopCart/ShowProductsJSP.jsp">返回产品显示页</a>
40.        </p>
41.        <%
42.            } else {
43.                Iterator iterator = products.iterator();
44.        %>
45.        
46.        <h1>
47.            你目前购买的产品为:
48.        </h1>
49.        
50.        <table border="1" cellspace="0">
51.            <tr bgcolor="#CCCCCC">
52.                <td>
53.                    产品名称
54.                </td>
55.                <td>
56.                    产品描述
57.                </td>
58.                <td>
59.                    价格
60.                </td>
61.                <td>
62.                    操作
63.                </td>
64.            </tr>
65.            <%
66.                while (iterator.hasNext()) {
67.                        Product productItem = (Product) iterator.next();
68.            %>
69.            <tr>
70.                <td>
71.                    <%=productItem.getName()%>
72.                </td>
73.                <td><%=productItem.getDescription()%>
74.                </td>
75.                <td>
76.                    <%=productItem.getPrice()%></td>
77.78.                <td>
79.                    <a
80.                        href="/helloApp/shopCart/ShoppingJSP.jsp?action=remove&removeId=<%=productItem.getId()%>">删除</a>
81.                </td>
82.            </tr>
83.84.            <%
85.                }
86.            %>
87.88.        </table>
89.        <p>
90.            目前您购物车的总价格为:<%=cart.getAllProductPrice()%>
91.            元人民币。
92.        </p>
93.        <p>
94.            </br>
95.            <a href="/helloApp/shopCart/ShowProductsJSP.jsp">返回产品显示页</a>
96.        </p>
97.        <%
98.            }
99.        %>
100.  </body>
101.</html>
 
最后打开Tomcat,在浏览器URL中输入http://localhost:8088/helloApp/shopCart/ShowProductsJSP.jsp
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yi76263725/archive/2008/09/14/2860224.aspx

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多