利用JavaBean完成购物车功能

在这里插入图片描述

jdbcExample.java

package cn.demo.jdbc.example;

import java.sql.*;

public class jdbcExample {
	public static void main(String[] args) {
		ResultSet rs = null;
		Statement stmt = null;
		Connection conn = null;
		//1、注册数据库的驱动
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
			//2、通过DriverManager获取数据库链接
			String url = "jdbc:mysql://localhost:3306/jspone";
			String username = "root";
			String password = "root12345";
			conn = DriverManager.getConnection(url,username,password);
			System.out.println("conn"+conn);
			//3、通过Connection对象获取statement对象
			stmt = conn.createStatement();
			//4、使用statement执行SQL语句
			String sql = "select * from user";
			rs = stmt.executeQuery(sql);
			//5、操作ResultSet结果集
			System.out.println("    id      |      name      |   password   ");
			while(rs.next()) {
				String name = rs.getString("username");
				String pwd = rs.getString("password");
				String hobby = rs.getString("hobby");
				System.out.println("    "+name+"    |     "+pwd+"     |    "+hobby);
			}
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				rs.close();
				stmt.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

Cart.java

package cn.demo.shopcar;

public class Cart {
		private String name;
		private double price;
		private int num;//购买数量
		
		
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public double getPrice() {
			return price;
		}
		public void setPrice(double price) {
			this.price = price;
		}
		public int getNum() {
			return num;
		}
		public void setNum(int num) {
			this.num = num;
		}
		
		
}

Goods.java

package cn.demo.shopcar;

public class Goods {
		private String name;
		private double price;
		
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public double getPrice() {
			return price;
		}
		public void setPrice(double price) {
			this.price = price;
		}
		

}

index.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="cn.demo.shopcar.Goods" %>
<%!
	static ArrayList goodslist=new ArrayList();			//用来存储商品
	static{												//静态代码块
		String[] names={"苹果","香蕉","梨","橘子"};		//商品名称
		double[] prices={2.8,3.1,2.5,2.3};			//商品价格
		for(int i=0;i<4;i++){							//初始化商品信息列表
			//定义一个GoodsSingle类对象来封装商品信息			
			Goods goods=new Goods();
			goods.setName(names[i]); 					//封装商品名称信息
			goods.setPrice(prices[i]); 		  		    //封装商品价格信息
			//goods.setNum(1); 							//封装购买数量信息
			goodslist.add(i,goods); 					//保存商品到goodslist集合对象中
		}	
	}
%>
<%
	session.setAttribute("goodslist",goodslist); 		//保存商品列表到session中
	response.sendRedirect("show.jsp");					//跳转到show.jsp页面显示商品
%>

show.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="cn.demo.shopcar.Goods" %>
<%	ArrayList goodslist=(ArrayList)session.getAttribute("goodslist");	%>
<table border="1" width="450" rules="none" cellspacing="0" cellpadding="0">
	<tr height="50"><td colspan="3" align="center">提供商品如下</td></tr>
	<tr align="center" height="30" bgcolor="lightgrey">
		<td>名称</td>
	<td>价格(/)</td>
		<td>购买</td>
	</tr>
	<%  if(goodslist==null||goodslist.size()==0){ %>
	<tr height="100"><td colspan="3" align="center">没有商品可显示!</td></tr>
	<% 
		} 
		else{
			for(int i=0;i<goodslist.size();i++){
				Goods goods=(Goods)goodslist.get(i);
	%>
	<tr height="50" align="center">
		<td><%=goods.getName()%></td>
		<td><%=goods.getPrice()%></td>
		<td><a href="do_car.jsp?action=buy&id=<%=i%>">购买</a></td>   <!-- id表示商品在集合中的序号 -->
	</tr>
	<%
			}
		}
	%>
	<tr height="50">
<td align="center" colspan="3"><a href="shopcar.jsp">查看购物车</a></td>
</tr>
</table>

do_car.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="cn.demo.shopcar.*"%>
<%
	ArrayList<Cart> cartlist = (ArrayList<Cart>)session.getAttribute("cartlist");
	String action=request.getParameter("action");
	if(action==null)
		action="";	
	if(action.equals("buy")){									//购买商品
		ArrayList goodslist=(ArrayList)session.getAttribute("goodslist");	
		int id =Integer.parseInt(request.getParameter("id")) ;		
		Goods good=(Goods)goodslist.get(id);
		Cart cart = new Cart();
		cart.setName(good.getName());
		cart.setPrice(good.getPrice());
		cart.setNum(1);
		if(cartlist==null){//第一次添加的时候,集合还不存在的时候
			cartlist = new ArrayList<Cart>();
		}
		boolean hasCart = false;
		for(Cart c : cartlist){
			if(c.getName().equals(cart.getName())){//购买相同的商品的时候
			c.setNum(c.getNum()+cart.getNum());
			hasCart = true;
			break;
			}
		}
		if(!hasCart)
			cartlist.add(cart);
		session.setAttribute("cartlist", cartlist);
		response.sendRedirect("shopcar.jsp");		
	}
	else if(action.equals("remove")){					//移除商品
		String name=request.getParameter("name");		//获取商品名称
		for(int i = 0 ; i < cartlist.size() ; i++){
			Cart c = cartlist.get(i);
			if(c.getName().equals(name)){
				cartlist.remove(i);
				break;
			}
		}
		
		response.sendRedirect("shopcar.jsp");		
	}
	else if(action.equals("clear")){							//清空购物车
		cartlist.clear();
		response.sendRedirect("shopcar.jsp");
	}
	else if(action.equals("append")){			//加商品
		String name = request.getParameter("name");
		for(Cart c : cartlist){
			if(c.getName().equals(name)){
			c.setNum(c.getNum()+1);
			break;
			}
		}
		response.sendRedirect("shopcar.jsp");
	}
	else if(action.equals("minus")){		//减商品
		String name = request.getParameter("name");
		for(int i = 0 ; i < cartlist.size() ; i++){
			Cart c = cartlist.get(i);
			if(c.getName().equals(name)){
				if(c.getNum()>1){
					c.setNum(c.getNum()-1);
					break;
				}else if(c.getNum()==1){
					cartlist.remove(i);
				}
			}
		}
		response.sendRedirect("shopcar.jsp");
	}
	/* 
	else{
		response.sendRedirect("show.jsp");		
	}	
	*/
%>

shopcar.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="cn.demo.shopcar.*" %>
<!-- 通过动作标识,获取ShopCar类实例 -->
<% 
    ArrayList<Cart> cartlist = (ArrayList<Cart>)session.getAttribute("cartlist"); 		//获取实例中用来存储购买的商品的集合
	double total=0;								//用来存储应付金额
%>

<table border="1" width="450" rules="none" cellspacing="0" cellpadding="0">
	<tr height="50"><td colspan="5" align="center">购买的商品如下</td></tr>
	<tr align="center" height="30" bgcolor="lightgrey">
		<td width="25%">名称</td>
		<td>价格(/)</td>
		<td>数量</td>
		<td>总价()</td>
		<td>移除</td>
	</tr>
	<%	if(cartlist==null||cartlist.size()==0){ %>
	<tr height="100"><td colspan="5" align="center">您的购物车为空!</td></tr>
	<% 
		}
		else{
			for(int i=0;i<cartlist.size();i++){
				Cart cart=(Cart)cartlist.get(i);
				String name=cart.getName();							//获取商品名称
				double price=cart.getPrice();						//获取商品价格
				int num=cart.getNum();								//获取购买数量				
				double money=((int)((price*num+0.05)*10))/10.0;		//计算当前商品总价
				total+=(int)(money*10)/10.0;										//计算应付金额
	%>
	<tr align="center" height="50">
		<td><%=name%></td>
		<td><%=price%></td>
		<td>
		<a href="do_car.jsp?action=append&name=<%=name%>"><input type="button"style="width:14px"value="+"/></a>
		<%=num%>
		<a href="do_car.jsp?action=minus&name=<%=name%>"><input type="button"style="width:14px"value="-"/></a>
		
		</td>
		<td><%=money%></td>
		<td>
<a href="do_car.jsp?action=remove&name=<%=cart.getName() %>">移除</a>
</td>
	</tr>
	<%							
			}
		}
	%>
	<tr height="50" align="center"><td colspan="5">应付金额:<%=total%></td></tr>
	<tr height="50" align="center">
		<td colspan="2"><a href="show.jsp">继续购物</a></td>
		<td colspan="3"><a href="do_car.jsp?action=clear">清空购物车</a></td>
	</tr>				
</table>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱睡觉的小馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值