确实看不懂老师自己网上拿的代码,所以一狠心,一眼都没看那个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 == 可以多次重复声明;