基于JSP网上书店系统 第8页
<td width="141" valign=top>
<table border="1" width="100%" algin=center>
<tr bgcolor="pink">
<td width="100%" colspan="2">购物车 </td>
</tr>
<tr>
<td width="46%">商品ID </td>
<td width="54%">数量 </td>
</tr>
上面只列出了部分代码,从上面的代码里很容易发现一个共同点,就是它们都是用了<form></form>标签.我通过这个标签,把前台的数据传给后台的函数.form有2个很重要的属性,一是action,它用来指明从客户端保存的数据传到哪里去,在我的程序里,它通常都只向cart.jsp,然后在cart.jsp里,用request对象来接收这些数据,最终作为函数的参数使用;二是method,它是指传递数据的方式,在这里我都是采用的post方式。Form里面很重要的另外一个东西就是:input,它是与用户进行交互的主要工具。根据不同的类型,可以有不同的作用。我使用了其空白框给用户填写数据,其type=’text’,按钮是form里必不可少的,type=’submit’,只有当用户点击确定按钮,客户端才会最终把这些数据传给cart,jsp来处理。
2)我在实现这个系统的时候,主要是根据用户对页面的点击做出回应的,所以在cart.jsp里我设置了一个String op=request.getParameter("op");当op取不同的值的时候,就调用不同的函数完成不同的功能,其代码如下:
if(op!=null&&op.compareTo("login")==0)
{
int result=cartManager.checkUser(request.getParameter("userName"),request.getParameter("userPassword"));
if(result==1)
loginInfo="登录成功!欢迎你";
else
loginInfo="登录失败!";
}
//表示顾客点击的是‘登录’,这个时候就调用cartManager类里的checkUser()方法,这里用的对象cartManager就是先前在开通通过uesBean动作定义的那个对象。UserName是刚刚通过登录表格的form标签传过来的用户名,它作为checkUser的实参。这个参数返回一个int值,1表示登录成功,0表示登录失败。
if(op!=null&&op.compareTo("cart")==0)
{
if(cartManager.getUserName().compareTo("")!=0)
cartManager.addOrderItem(request.getParameter("productId"),request.getParameter("productPrice"));
else
loginInfo="请先登录!";
}
//如果客户点击放入购物车,这时就会有2种情况,一种是这位顾客还没有登录,那么他是不能买书的;另外一种是登录成功,那必须为这次采购插入一张订购单。我是通过购物车类中的usename来识别这2种情况的。因为只要他登录成功,系统就会为他创建一个购物车类的对象,那么他的username一定不为空,就执行cartManager 对象的addOrderItem()方法,这个函数在调用的时候必须传过去的参数是:书名号,书价格。如果比较的结果为空,则打印请先登录的提示信息。
if(op!=null&&op.compareTo("cartDeleteItem")==0)
{
cartManager.deleteOrderItem(request.getParameter("productId"));
}
//如果顾客把书放入购物车后又不想买了,就会执行cartManager对象的 deleteOrderItem()方法,为什么这里不需要像上面一样比较是否登录呢?是因为顾客既然要删除订购单,那么肯定是成功买了书,根据上面可以知道,卖过书的顾客肯定是成功登录过的。其中,productId是它的实参。
if(op!=null&&op.compareTo("submitOrder")==0&&Integer.parseInt(cartManager.getOrderPrice())!=0)
{
cartManager.insertOrder();
orderInfo="您的购物单已提交,ID是:"+cartManager.getOrderId();
}
//最后是顾客购买活动全部结束,提交购物车,这时插入这个购物车,并且核算金额。
//set the product list
cartManager.setPageSize(10);
Vector vProduct=cartManager.queryProduct(pageCount);
// out.print("queryProductId:"+cartManager.getQueryProductId()+"<br>");
//set the orderItem list
Vector vOrderItem=cartManager.getOrderItem();
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页