记录自己关于web做过的一些实践(稍微有难度的购物车—第一部分)

购物车的登录界面我之前有写过差不多的,是聊天室登录界面,然后登陆之后通过表单把内容传递到loginmessage.jsp中,在里面会有别的功能,稍后会再讲

首先,要创建一个java类,里面是写的购物商品信息,java中可以使用getter-setter快捷创建,这个就不多赘述了

public class GoodsSingle {
	private String no;
	private String name;
	private float price;
	private int num;
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
		this.no = no;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public float getPrice() {
		return price;
	}
	public void setPrice(float price) {
		this.price = price;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	
}

然后创建的是购物显示界面,展示所有售卖的商品,我是使用的jsp来显示的,但是在显示之前,首先要连接数据库,把所有售卖的商品导入到session中然后封装到goodslist中才能够在show界面中展示出来,所以我首先是创建了buyindex.jsp,连接数据库,然后把所有商品进行导入,连接数据库的代码在最开始的时候已经写过了,所以我这里是直接使用的db类来进行操作的

连接数据库,然后从数据库中把商品的编号,名称,价钱一件一件的依次存入goodlist中,然后把所有信息存到session,传递到购物展示的界面show

<%
	ArrayList goodlist = new ArrayList();
	PreparedStatement ps;
	db co = new db();
	int i = 0;
	ps = co.PreparedStatement("select * from good");
	ResultSet r = ps.executeQuery();
	while (r.next()) {
		GoodsSingle single = new GoodsSingle();
		single.setNo(r.getString("no"));
		single.setName(r.getString("name"));
		single.setPrice(r.getFloat("price"));
		single.setNum(1);
		goodlist.add(i,single);
		i++;
	}
%>
<%
	session.setAttribute("goodslist", goodlist);
	response.sendRedirect("buyshow.jsp");
%>

 这里就是show的代码,首先是判断goodlist中是否有商品,如果没有的话,在界面中显示,没有商品可显示,如果有商品,进行循环把所有的商品依次显示在页面上,在每一件商品的后面增加一个购买按钮的超链接,action的内容是buy,然后把购买的商品id也一起传到docar的界面中

<% ArrayList goodslist=(ArrayList)session.getAttribute("goodslist"); %>
<table border="1" width="450" rules="none" cellspacing="0" cellpadding="0">
  <tr height="50">
    <td colspan="4" align="center">提供的商品如下</td>
  </tr>
  <tr align="center" height="30" bgcolor="lightgrey">
    <td>编号</td>
    <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++){
    		GoodsSingle single=(GoodsSingle)goodslist.get(i);
  %>
  <tr height="50" align="center">
    <td><%=single.getNo()%></td>
    <td><%=single.getName()%></td>
    <td><%=single.getPrice()%></td>
    <td><a href="buydocar.jsp?action=buy&id=<%=i%>">购买</a></td>
    </tr>
    <%
    	}
    	
    }
 %>
 <tr height="50">
   <td align="center" colspan="4"><a href="buyshopcar.jsp">查看购物车</a></td>
   </tr>
</table>

接下来我编写的是购物车展示的界面,首先创建显示的模板,然后判断buylist也就是购物车内是否有商品,没有就输出您的购物车为空,如果不为空则循环把商品的信息显示并且通过total来计算出总价,每个商品后面会有一个超链接,也就是移除的按钮,action为remove之前我试过用id来进行移除,但是可能是因为string,int不一致的原因出错了,所以我这里使用了name来作为移除的依据

下面还有继续购物,清空购物车以及退出保存购物车内容,action是不一样的,不一一赘述了

<%
ArrayList buylist=myCar.getBuylist();
float 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>
     <td>移除(-1/次)</td>
   </tr>
   <%
     if(buylist==null||buylist.size()==0){%>
     <tr height="100"><td colspan="5" align="center">您的购物车为空!</td></tr>
   <%
     }
     else{
    	 for(int i=0;i<buylist.size();i++){
    		 GoodsSingle single=(GoodsSingle)buylist.get(i);
    		 String no=single.getNo();
    		 String name=single.getName();
    		 float price=single.getPrice();
    		 int num=single.getNum();
    		 float money=((int)((price*num+0.05f)*10))/10f;
    		 total+=money;
    %>
    <tr align="center" height="50">
    <td><%=no%></td>
    <td><%=name%></td>
    <td><%=price%></td>
    <td><%=num%></td>
    <td><%=money%></td>
    <td>
       <a href="buydocar.jsp?action=remove&name=<%=single.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="buyindex.jsp">继续购物</a></td>
     <td colspan="3"><a href="buydocar.jsp?action=clear">清空购物车</a></td>
     <td colspan="3"><a href="buydocar.jsp?action=save">退出</a></td>
   </tr>
</table>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值