用servlet实现一个简单的购物车程序
作者:jackliu
e-mail:suntoday@eyou.com
理解Servelt的session对象
使用java Servlet API的会话对象为每个用户提供了跟踪会话的方式,其中有一种方式的实现是利用
HttpSession对象,HttpSession对象用来在当前servlet环境中存储会话数据,HttpSession对象由
HttpSession接口定义,HttpSession对象可以使用HttpServletRequest对象的getSession()方法获得。
HttpSession对象的方法列表:
_________________________________________________________________
方法 描述
long getCreationTime() 返回会话创建时间
String getID() 返回会话ID
long getLastaccessedTime() 返回上一次携带这个ID的请求时间
void invalidate() 删除当前会话
boolean isNew() 假如会话已创建并未发送到浏览器返回true
String[] getValueNames() 返回为本次会话存储的所有值的名字数组
object getValue(string name) 返回给定名字的值
void putValue(String name,object value) 将一个值增加到会话
void removeValue(String name) 从会话中删除一个条目
int setMaxInactiveInterval(int interval)设置请求之间的会话存活时间
int getMaxInactiveInterval() 返回请求之间的会话存活时间
_________________________________________________________________
购物车样例
假定一个Web顾客通过网页访问一个商店的销售商品目录,当看到感爱好商品后,放到自己的购物车中
,系统应该记录下一个顾客所购买的全部商品清单。
实现这样一个功能的servlet,首先我们需要设计一个Web页面,用来列出商店中所有的商品目录:
点击查看大图shop.Html文件清单:
下载源程序文件
当顾客点击"buy now"按钮后,将请求提交给一个Servlet,servlet程序用来对顾客的操作进行处理,
记录下顾客所购买的商品,并显示出目前顾客将要购买的所有商品清单。
ShoppingCart.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ShoppingCart extends HttpServlet {
public void doPost(HttpServletRequest req,HttpServletResponse res) throws
ServletException ,IOException{
//取得Session对象
//假如Session不存在,为本次会话创建此对象
HttpSession session =req.getSession(true);
Integer itemCount=(Integer)session.getValue("itemCount");
//假如session是新的
if (itemCount==null)
itemCount=new Integer(0);
PRintWriter out=res.getWriter();
res.setContentType("text/html");
//接收传来的参数
String[] itemsSelected;
String itemName;
itemsSelected=req.getParameterValues("item");
if(itemsSelected !=null){
for(int i=0;i
itemName=itemsSelected[i];
System.out.println(itemName);
itemCount=new Integer(itemCount.intValue()+1);
//购买的条目
session.putValue("item"+itemCount,itemName);
//总条目
session.putValue("itemCount",itemCount);
}
}
out.println("<html>");
out.println("<title>");
out.println("item list");
out.println("</title>");
out.println("<body><hr>Session List:</h4><br><br>");
for(int i=1;i<=itemCount.intValue();i++){
out.println((String)session.getValue("item"+i)+"<hr>");
}
out.println("</body>");
out.println("</html>");
out.close();
}
}
本例程序实现了一个简单的购物车程序,目的是通过购物车程序让网友了解HttpSession类在servlet中
的用法和实现一个购物车的基本思路。