JSP写的小购物车系统,但是有缺陷

下面的是我网上找的购物车系统,但是有缺陷,当你提交物品之后,重新刷新物品,你会发现购物车里面会自动添加一件物品,各位网友请多多指教小弟

shop.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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">
-->
</head>

<body>
<form method="post" action="shopCheck.jsp">
<br>
请选择要添加的或者删除的图书种类
<hr>
添加商品:
<select name="item">
<option>java teaching</option>
<option>java web developing</option>
<option>java web</option>
<option>ssh2 developing</option>
<option>java programming</option>
<option>c program</option>
</select>
<br>
<hr>
<input type="submit" name="submit" value="add">
<input type="submit" name="submit" value="remove">
</form>
</body>
</html>

 

shopCheck.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<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">
-->

</head>

<body>
<%
request.setCharacterEncoding("gbk");
%>
<jsp:useBean id="cart" scope="session" class="shop.Shop"/><!-- 这里相当于创建一个SHOP对象 -->
<jsp:setProperty name="cart" property="*"/>

<%
cart.processRequest(request);
%>
<br>你已经选购的书有:
<ol>
<%
String[] items = cart.getItems();
for (int i = 0; i < items.length; i++) {
%><li><%=items[i]%> <%
}
%>

</ol>
<br>
<hr>

</body>
</html>

Shop.java

package shop;

import java.util.*;
import javax.servlet.http.*;

public class Shop {
private Vector v = new Vector();
private String submit = null;
private String item = null;

private void addItem(String name) {
v.addElement(name);
}

private void removeItem(String name) {
v.removeElement(name);
}

public void setItem(String name) {
item = name;
}

public void setSubmit(String s) {
submit = s;
}

public String[] getItems() {
String[] s = new String[v.size()];
v.copyInto(s);
return s;
}

public void processRequest(HttpServletRequest request) {
if (submit == null) {//默认添加物品
//addItem(item);
reset();
}
if (submit.equals("add")) {
addItem(item);

}
if (submit.equals("remove")) {
removeItem(item);
}
reset();
}

private void reset() {
setSubmit(null);
setItem(null);

}

public String getSubmit() {
return submit;
}

public String getItem() {
return item;
}
}

 缺陷,提交之后再刷新页面,很神器的缺陷就出来了

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。