基于JSP网上书店系统 第8页

基于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>标签.我通过这个标签,把前台的数据传给后台的函数.form2个很重要的属性,一是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] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有