JSP实现 使用Session、Servlet、JavaBean和MVC改造前面的购物车功能。

确实看不懂老师自己网上拿的代码,所以一狠心,一眼都没看那个ppt的代码,全部靠自己写下来,感觉代码重复率太高,因为之前没有看题,没有看见使用JavaBean实现,做的时候,确实也想到过,但是觉得可能会导致代码复杂,现在觉得确实应该添加一层JavaBean

main.jsp
 <body>
                  <a href="Buy_1.jsp">美的冰箱</a>
                  <a href="Buy_2.jsp">美的空调</a>
                  <a href="Buy_3.jsp">美的电视</a>
<a href="myCart.jsp">查看购物车</a>
  </body>
buy_01.jsp
<div>
		<img src="images/Buy_iceBox.jpg">
		<form action="myCart" method="get">
			名称: 冰箱<br> 价格:100<br> <input type="text"
				name="buyName_1" value="冰箱" readonly><br> 数量 <input
				id="001" type="text" placeholder=" " name="buyNumber_1"> <input
				type="submit" value="点击购买">
		</form>
	</div>

	<a href="myCart.jsp">查看购物车
	</a> 
  </body>

通过表单,将数据传输到servlet层,在通过调用JavaBean,经行数据的处理和存储 ,因为当时没有写JavaBean层,所以我直接将商品的name 属性设置好编号,但是我觉得这个方法在以后的实验中不好使用,如果有时间,重新添加JavaBean层

servletCart.java
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		if ((request.getParameter("buyNumber_1")) != null) {
			String iceBox = request.getParameter("buyNumber_1");
			request.getSession().setAttribute("iceBox_number", iceBox);
		} else if ((request.getParameter("buyNumber_2")) != null) {
			String skyCon = request.getParameter("buyNumber_2");
			request.getSession().setAttribute("skyCon_number", skyCon);
		} else if ((request.getParameter("buyNumber_3")) != null) {
			String TeleVa = request.getParameter("buyNumber_3");
			request.getSession().setAttribute("TeleVa_number", TeleVa);
		}
		response.sendRedirect("myCart.jsp");
	}
myCart.jsp
<%!int[] buyingNum = new int[3];%>
	<%
		String[] checkBoxs = { "冰箱", "空调", "电视机" };
		out.print("这是结账后台,请确认下列信息<br>");
		out.print("购物车信息");
		out.print("<br>");
		double[] price = { 100, 200, 300 };
		
		if ((request.getSession().getAttribute("iceBox_number")) != null) {
			Object iceBox = (request.getSession().getAttribute("iceBox_number"));
			String iceBox_N = (String) iceBox;
			buyingNum[0] = Integer.parseInt(iceBox_N);
			request.getSession().setAttribute("buyingNum_1", buyingNum[0]);
		}
		if ((request.getSession().getAttribute("skyCon_number")) != null) {
			Object skyCon = (request.getSession().getAttribute("skyCon_number"));
			String skyCon_N = (String) skyCon;
			buyingNum[1] = Integer.parseInt(skyCon_N);
			request.getSession().setAttribute("buyingNum_2", buyingNum[1]);
		}
		if ((request.getSession().getAttribute("TeleVa_number")) != null) {
			Object TeleVa = (request.getSession().getAttribute("TeleVa_number"));
			String TeleVa_N = (String) TeleVa;
			buyingNum[2] = Integer.parseInt(TeleVa_N);
			request.getSession().setAttribute("buyingNum_3", buyingNum[2]);
		}

	%>

	<table border="1">
		<tr>
			<td>编号</td>
			<td>商品名称</td>
			<td>价格</td>
			<td>购买数量</td>
			<td>花费金额</td>
		</tr>
		<%
			for (int i = 0; i <= checkBoxs.length - 1; i++) {
				if (buyingNum[i] == 0) {
					continue;
				}
		%>
		<tr>
			<%
				out.println("<td>00" + (i+1)+ "</td><td>" + checkBoxs[i] + "</td><td>" + price[i] + "</td><td>"
							+ buyingNum[i] + "</td><td>" + buyingNum[i] * price[i] + "</td>");
			%>
		</tr>
		<%
			}
		%>
		<tr><td>总金额</td><td>
		<%
		out.println(buyingNum[0]*price[0]+buyingNum[1]*price[1]+buyingNum[2]*price[2]);
		 %>
		</td></tr>
	</table>
	<a href="javascript:history.go(-1)">返回上一页</a>
	<a href="shopping.jsp">返回shopping</a>
</body>

session在传输数据的时候。传输的数据类型为 Object 而不是 String ,在 数据类型转换的时候,需要分步骤进行。

只需要声明一次的变量的时候,可以将声明变量放入<%!%>中,既可只执行一次,但是不能放入if语句中进行判断

if()
{

}

在{ }中声明的语句,不能用在{}之外,由此可以推断出,为什么 for(int i=0; ;)中 == i == 可以多次重复声明;

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值