这些日子,学习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
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
<%&#64; page language&#61;"java" import&#61;"java.util.*" pageEncoding&#61;"GB18030"%>
<%&#64; page import&#61;"shopping.cart.*"%>
<%String path &#61; request.getContextPath();String basePath &#61; request.getScheme() &#43; "://"&#43; request.getServerName() &#43; ":" &#43; request.getServerPort()&#43; path &#43; "/";
%>
<%Map products &#61; new HashMap();products.put("1", new Product("1", "mp3播放器","效果非常不错的mp3播放器&#xff0c;存储空间达1GB", 100.00));products.put("2", new Product("2", "数码相机", "象素500万&#xff0c;10倍光学变焦",500.00));products.put("3", new Product("3", "数码摄像机","120万象素&#xff0c;支持夜景拍摄&#xff0c;20倍光学变焦", 200.00));products.put("4", new Product("4", "迷你mp4","市面所能见到的最好的mp4播放器&#xff0c;国产", 300.00));products.put("5", new Product("5", "多功能手机","集mp3播放、100万象素数码相机&#xff0c;手机功能于一体", 400.00));products.put("6", new Product("6", "多功能手机111","集mp3播放23、100万象素数码相机111&#xff0c;手机功能于一体111",600.00));products.put("7", new Product("7", "11111111111","集mp3播放23、100万象素数码相机111&#xff0c;手机功能于一体111",700.00));products.put("8", new Product("8", "2222222222","集mp3播放23、100万象素数码相机111&#xff0c;手机功能于一体111",800.00));products.put("9", new Product("9", "33333333333333","集mp3播放23、100万象素数码相机111&#xff0c;手机功能于一体111",900.00));session.setAttribute("products", products);%>产品显示
<%Set productIdSet &#61; products.keySet();Iterator it &#61; productIdSet.iterator();int number &#61; 1;while (it.hasNext()) {String id &#61; (String) it.next();Product product &#61; (Product) products.get(id);%>序号 产品名称 产品描写叙述 产品单位价格&#xff08;&#xffe5;&#xff09; 加入到购物车 <%}%><%&#61;number&#43;&#43;%> <%&#61;product.getName()%> <%&#61;product.getDescription()%> <%&#61;product.getPrice()%> &action&#61;add" target&#61;"cart">我要购买
Buy.jsp
<%&#64; page language&#61;"java" import&#61;"java.util.*" pageEncoding&#61;"GB18030"%>
<%&#64; page import&#61;"shopping.cart.*" %><%
Cart c &#61; (Cart)session.getAttribute("cart");
if(c &#61;&#61; null) {c &#61; new Cart();session.setAttribute("cart", c);
}double totalPrice &#61; c.getTotalPrice();request.setCharacterEncoding("GBK");
String action &#61; request.getParameter("action");Map products &#61; (HashMap)session.getAttribute("products");if(action !&#61; null && action.trim().equals("add")) {String id &#61; request.getParameter("id");Product p &#61; (Product)products.get(id);CartItem ci &#61; new CartItem();ci.setProduct(p);ci.setCount(1);c.add(ci);
}if(action !&#61; null && action.trim().equals("delete")) {String id &#61; request.getParameter("id");c.deleteItemById(id);
}if(action !&#61; null && action.trim().equals("update")) {for(int i&#61;0; i
String path &#61; request.getContextPath();
String basePath &#61; request.getScheme()&#43;"://"&#43;request.getServerName()&#43;":"&#43;request.getServerPort()&#43;path&#43;"/";
%><%
List
%> <%for(Iterator产品ID 产品名称 购买数量 单位价格 总价 处理 <%}%><%&#61;ci.getProduct().getId() %> <%&#61;ci.getProduct().getName() %> " value&#61;"<%&#61;ci.getCount() %>" οnkeypress&#61;"if (event.keyCode <45 || event.keyCode > 57) event.returnValue &#61; false;"οnchange&#61;"document.forms[0].submit()"> <%&#61;ci.getProduct().getPrice() %> <%&#61;ci.getProduct().getPrice()*ci.getCount() %> ">删除 全部商品总价格为&#xff1a; <%&#61;c.getTotalPrice() %> 下单
配置好相关文件&#xff0c;在tomcat中公布后&#xff0c;在浏览器中输入http://localhost:8088/shopCart/ShowProducts.jsp 他们可以进入产品页面&#xff0c;其他操作都能够完成在页面上&#xff01;
注意&#xff1a;我用tomcatport&#xff08;8088&#xff09;由他转。假设没改过tomcatport鞋。默认port至8080。