首先写一个购物的页面:carts.html
<html>
<head>
<title>carts</title>
</head>
<body bgcolor="white">
<form type=POST action=carts.jsp>
<BR>
请选择要添加或要删除的货物:
<br>
添加:
<SELECT NAME="item">
<OPTION>照相机
<OPTION>汽车
<OPTION>CD机
<OPTION>电脑
<OPTION>jsp实例开发
<OPTION>手机
</SELECT>
<br> <br>
<INPUT TYPE=submit name="submit" value="add">
<INPUT TYPE=submit name="submit" value="remove"></form>
</body>
</html>
其次,carts.jsp是处理页面
<html>
<jsp:useBean id="cart" scope="session" class="sessions.Cart" />
<jsp:setProperty name="cart" property="*" />
<%
cart.processRequest(request);
%>
<FONT size = 5 COLOR="#CC0000">
<br> 你的购物车中的如下内容::
<ol>
<%
String[] items = cart.getItems();
for (int i=0; i<items.length; i++) {
%>
<li> <% out.print(Cartfilter.Filter.filter(items[i])); %>
<%
}
%>
</ol>
</FONT>
<hr>
<%@ include file ="carts.html" %>
</html>
第三步,实现购物功能的javaBean , Cart.java
package sessions;
import javax.servlet.http.*;
import java.util.Vector;
import java.util.Enumeration;
public class Cart {
Vector v = new Vector();
String submit = null;
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);
if (submit.equals("add"))
addItem(item);
else if (submit.equals("remove"))
removeItem(item);
reset();
}
// reset方法
private void reset() {
submit = null;
item = null;
}
}
最后,实现处理显示效果的 Filter.javapackage Cartfilter;
public final class Filter {
public static String filter(String message) { if (message == null)
return (null); char content[] = new char[message.length()]; //把message中的内容
message.getChars(0, message.length(), content, 0);
StringBuffer result = new StringBuffer(content.length + 50);
for (int i = 0; i < content.length; i++) { //处理页面中特殊符号的显示问题
switch (content[i]) {
case '<':
result.append("<");
break;
case '>':
result.append(">");
break;
case '&':
result.append("&");
break;
case '"':
result.append(""");
break;
default:
result.append(content[i]);
}
}
return (result.toString()); }
}