博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用JSP实现的商城购物车模块
阅读量:4352 次
发布时间:2019-06-07

本文共 6366 字,大约阅读时间需要 21 分钟。

 

这两天,在学习JSP,正好找个小模块来练练手:

    下面就是实现购物车模块的页面效果截图:

图1. 产品显示页面 通过此页面进行产品选择,增加到购物车

 

图2 .购物车页面

 

图3 . 商品数量设置

 

好了,先不贴图了,直接上代码;先看看项目的文档结构把(麻雀虽小,五脏俱全):

 

整个项目包括三个类,两个JSP页面,以下分别把他们的代码贴上:

 

Cart.java

package shopping.cart;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Cart {	List
items = new ArrayList
(); public List
getItems() { return items; } public void setItems(List
items) { this.items = items; } public void add(CartItem ci) { for (Iterator
iter = items.iterator(); iter.hasNext();) { CartItem item = iter.next(); if(item.getProduct().getId() == ci.getProduct().getId()) { item.setCount(item.getCount() + 1); return; } } items.add(ci); } public double getTotalPrice() { double d = 0.0; for(Iterator
it = items.iterator(); it.hasNext(); ) { CartItem current = it.next(); d += current.getProduct().getPrice() * current.getCount(); } return d; } public void deleteItemById(String productId) { for (Iterator
iter = items.iterator(); iter.hasNext();) { CartItem item = iter.next(); if(item.getProduct().getId().equals(productId)) { iter.remove(); return; } } } }

 

CartItem.java

 

package shopping.cart;import shopping.cart.Product;public class CartItem {	private Product product;	private int count;	public int getCount() {		return count;	}	public void setCount(int count) {		this.count = count;	}	public Product getProduct() {		return product;	}	public void setProduct(Product product) {		this.product = product;	}}

 

 Product.java

package shopping.cart;import java.io.Serializable;public class Product implements Serializable {	private String id;// 产品标识	private String name;// 产品名称	private String description;// 产品描写叙述	private double price;// 产品价格	public Product() {	}	public Product(String id, String name, String description, double price) {		this.id = id;		this.name = name;		this.description = description;		this.price = price;	}	public void setId(String id) {		this.id = id;	}	public void setName(String name) {		this.name = name;	}	public void setDescription(String description) {		this.description = description;	}	public void setPrice(double price) {		this.price = price;	}	public String getId() {		return id;	}	public String getName() {		return name;	}	public String getDescription() {		return description;	}	public double getPrice() {		return price;	}}

 

以下是俩JSP页面源代码:

ShowProducts.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ page import="shopping.cart.*"%><%	String path = request.getContextPath();	String basePath = request.getScheme() + "://"			+ request.getServerName() + ":" + request.getServerPort()			+ path + "/";%>					My JSP 'ShowProductsJSP.jsp' starting page		
<% Map products = new HashMap(); products.put("1", new Product("1", "mp3播放器", "效果非常不错的mp3播放器,存储空间达1GB", 100.00)); products.put("2", new Product("2", "数码相机", "象素500万,10倍光学变焦", 500.00)); products.put("3", new Product("3", "数码摄像机", "120万象素,支持夜景拍摄,20倍光学变焦", 200.00)); products.put("4", new Product("4", "迷你mp4", "市面所能见到的最好的mp4播放器,国产", 300.00)); products.put("5", new Product("5", "多功能手机", "集mp3播放、100万象素数码相机,手机功能于一体", 400.00)); products.put("6", new Product("6", "多功能手机111", "集mp3播放23、100万象素数码相机111,手机功能于一体111",600.00)); products.put("7", new Product("7", "11111111111", "集mp3播放23、100万象素数码相机111,手机功能于一体111",700.00)); products.put("8", new Product("8", "2222222222", "集mp3播放23、100万象素数码相机111,手机功能于一体111",800.00)); products.put("9", new Product("9", "33333333333333", "集mp3播放23、100万象素数码相机111,手机功能于一体111",900.00)); session.setAttribute("products", products); %>

产品显示

<% Set productIdSet = products.keySet(); Iterator it = productIdSet.iterator(); int number = 1; while (it.hasNext()) { String id = (String) it.next(); Product product = (Product) products.get(id); %>
<% } %>
序号 产品名称 产品描写叙述 产品单位价格(¥) 加入到购物车
<%=number++%> <%=product.getName()%> <%=product.getDescription()%> <%=product.getPrice()%> 我要购买

 

Buy.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ page import="shopping.cart.*" %><%Cart c = (Cart)session.getAttribute("cart");if(c == null) {	c = new Cart();	session.setAttribute("cart", c);}double totalPrice = c.getTotalPrice();request.setCharacterEncoding("GBK");String action = request.getParameter("action");Map products = (HashMap)session.getAttribute("products");if(action != null && action.trim().equals("add")) {	String id = request.getParameter("id");	Product p = (Product)products.get(id);	CartItem ci = new CartItem();	ci.setProduct(p);	ci.setCount(1);	c.add(ci);}if(action != null && action.trim().equals("delete")) {	String id = request.getParameter("id");	c.deleteItemById(id);}if(action != null && action.trim().equals("update")) {	for(int i=0; i
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%List
items = c.getItems();%>
购物车
it = items.iterator(); it.hasNext(); ) { CartItem ci = it.next(); %>
<% for(Iterator
<% } %>
产品ID 产品名称 购买数量 单位价格 总价 处理
<%=ci.getProduct().getId() %> <%=ci.getProduct().getName() %> " value="<%=ci.getCount() %>" οnkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" οnchange="document.forms[0].submit()"> <%=ci.getProduct().getPrice() %> <%=ci.getProduct().getPrice()*ci.getCount() %> 删除
全部商品总价格为: <%=c.getTotalPrice() %>
下单

 

配置好相关文件,在tomcat中公布后,在浏览器中输入 就可以进入产品展示页面,其他操作都能够在页面上完毕!

注意:我使用的tomcatport(8088)被自己改过,假设没改过tomcatport的童鞋,默认port为8080。

 

 

转载于:https://www.cnblogs.com/blfshiye/p/4342514.html

你可能感兴趣的文章
阅读《余生有你,人间值得》有感
查看>>
每日英语
查看>>
[leetcode] Regular Expression Matching
查看>>
BZOJ1927: [Sdoi2010]星际竞速(最小费用最大流 最小路径覆盖)
查看>>
洛谷P1317 低洼地
查看>>
MVC Redirect 页面跳转不了
查看>>
李开复有哪些地方做的不好
查看>>
12.22
查看>>
新版本的molar mass(uva-1586)明明debug过了,各种测试还是WA真是气死我了
查看>>
gdb(ddd,kdevelop等)调试ZeroIce开发的应用程序,中断信号引起的问题
查看>>
牛股助推器(每股收益率)
查看>>
SpringCloud+feign 基于Springboot2.0 负载均衡
查看>>
【BZOJ5094】硬盘检测 概率
查看>>
mac上n次安装与卸载mysql
查看>>
Python之单元测试——HTMLTestRunner
查看>>
WebNotes(PHP、css、JavaScript等)
查看>>
C++:文件的输入和输出
查看>>
Http协议、Tomcat、servlet
查看>>
Spring Boot (11) mybatis 关联映射
查看>>
macOS 下安装tomcat
查看>>