【模块开发】商品购物车的实现——3.⽤户添加删除商品
的操作(控制层)
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/qq_36631076/article/details/80402785
1.主页⾯实现添加
⾸先在我们的主页⾯相关的按钮上加上连接地址的跳转,转到⼀个jsp页⾯,这个jsp页⾯实现的是添加商品的功能。
index,jsp中需要加⼊的代码,例如:
<!-- 在这⾥将商品加⼊购物车 -->
<a href="addGood.jsp?id=<%=Id() %>" title="header=[Add to cart] body=[ ] fade=[on]"><img src="images/cart.gif" alt="" title="" border="0" class="l
2.addGood.jsp添加商品的实现
<%@page import="del.Cart"%>
<%@page import="del.Good"%>
<%@page import="com.dao.GoodDao"%>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = ContextPath();
String basePath = Scheme()+"://"+ServerName()+":"+ServerPort()+path+"/";
%>
<html>
<body>
<h1>
这⾥是我们的添加商品页⾯。你能看到这说明页⾯没有跳转到购物车页⾯
</h1>
</body>
</html>
<!-- 这⾥实现⼀个业务逻辑:将商品添加到购物车 -->
<%
//获取当前从页⾯中传递过来的id
int id=Integer.Parameter("id"));
//根据id从数据库获取对应的商品
GoodDao dao=new GoodDao();
Good GoodById(id);
//获得我们需要的购物车
Cart cart;
Attribute("cart")!=null)
{
//如果购物车已经存在。⽤session中的购物车
cart=(Attribute("cart");
}else{
cart=new Cart();
}
//将商品加⼊到集合中
cart.addGood(good, 1);
//将购物车加⼊到session中的属性中
session.setAttribute("cart", cart);
//全部操作完成之后页⾯重定向到我们现实购物车的页⾯
response.sendRedirect("cart.jsp");
%>
从上⾯可以看出,将购物车添加商品之后跳转到了我们的cart.jsp页⾯,这个页⾯⽤于显⽰我们的商品,也就是最开始看到的那个图,接下来看⼀下我们购物车页⾯的实现。
3.cart.jsp购物车页⾯
<%@page import="del.Good"%>
<%@page import="del.Cart"%>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = ContextPath();
String basePath = Scheme()+"://"+ServerName()+":"+ServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<html>
<head>
<base href="<%=basePath%>">
<title>我的购物车</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style>
.table-c table{border-right:1px solid #3366CC;border-bottom:1px solid #3366CC}  .table-c table td{border-left:1px solid #3366CC;border-top:1px solid #3366CC}  /*
css 注释:
只对table td设置左与上边框;
对table设置右与下边框;
为了便于截图,我们将css 注释说明换⾏排版
*/网页购物车代码
</style>
</head>
<!-- 这个页⾯是⽤来显⽰我们的购物车的信息 -->
<body>
<center>
<h1>我的购物车</h1>
<a href="index.jsp">⾸页</a> >> <a href="index.jsp">商品列表</a>
<hr>
<div id="shopping" class="table-c">
<form action="" method="">
<table>
<tr>
<td>商品名称  </td>
<td>商品单价  </td>
<td>购买数量  </td>
<td>操作        </td>
</tr>
<%
//⾸先判断session中是否有购物车对象
Attribute("cart")!=null)
{
%>
<!-- 循环的开始 -->
<%
//先获取购物车对象
System.out.print("在这⾥获取到了购物车对象\n");
Cart cart=(Attribute("cart");
//获取我们购物车中的good对象们
HashMap<Good, Integer> ShopGood();
Set<Good> goodSet=hm.keySet();
/
/获得的迭代器对象
Iterator<Good> itertor=goodSet.iterator();
System.out.print("执⾏到这说明迭代器都有了\n");
//然后遍历迭代器中的元素:将good⼀个⼀个获取并显⽰
Good tempGood=new Good();
Good tempGood=new Good();
while(itertor.hasNext())
{
System.out.print("执⾏明迭代器中的循环\n");
//从迭代器中获取当前的good对象
();
System.out.print("当前的商品名字:"+Name()+"\n");
System.out.print("当前的商品单价"+Price()+"\n");
System.out.print("当前商品的数量"+hm.get(tempGood)+"\n");
%>
<!-- 在此将我们的商品获取,⼀个⼀个显⽰出来 -->
<tr>
<td><%=Name() %></td>
<td><%=Price() %></td>
<td><%=hm.get(tempGood) %></td>
<td><a href="detlete.jsp?id=<%=Id()%>">删除</a></td>
</tr>
<%
}//end while
%>
</table>
<div class="total"><span id="total">总计:<%=PriceSum()%>¥</span></div>
<%
}//end if
%>
</center>
</body>
</html>
这个页⾯,获取我们的购物车对象,然后通过循环⼀个⼀个将我们的数据输出来显⽰,其中还有⼀个操作:删除商品。接下来我们见⼀下删除商品功能的实现。
4.delete.jsp删除商品
<%@page import="del.Cart"%>
<%@page import="del.Good"%>
<%@page import="com.dao.GoodDao"%>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = ContextPath();
String basePath = Scheme()+"://"+ServerName()+":"+ServerPort()+path+"/";
%>
<!-- 实现业务逻辑:将商品从购物车cart中删除 -->
<%
//获取要删除商品的id
int id=Integer.Parameter("id"));
//根据id获取商品对象
GoodDao dao=new GoodDao();
Good GoodById(id);
//获取当前我们session中的购物车,然后删除商品
Cart cart=(Attribute("cart");
//删除完之后保存⼀下购物车
session.setAttribute("cart", cart);
//做完之后重定向到我们的购物车页⾯
response.sendRedirect("cart.jsp");
%>
5.⼩结
以上,我们就将我们购物车商品添加删除的功能全部实现了~通过这个模块学习到了如何分析⼀个模块需要的功能,然后搭建框架组织起来(⼀步⼀步的实现功能)。下次遇到模块的开发应该先正整理思路,如何去开发,功能有哪些,功能之间的连接纽带⼜是什么。将思路组织清楚才能更有利开发,⽐直接看视频课看别⼈的开发会更有帮助。因为他们告诉我们的是他们跳过坑之后的结果。在开发的时候我们会遇到⼀个⼀个的问题,或⼩或迷茫,但是它是打通我们任督⼆脉的关键。继续加油!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。