电子书店(购物车三)

来源:互联网 发布:mac显示win隐藏文件夹 编辑:程序博客网 时间:2024/04/28 06:54
 现在我们的电子书店系统已经可以购买书籍了,但是作为一个商城网站。还缺少了一项工作-结账,我们为用户提供一个录入个人信息的页面,并同时计算出当前购买书籍的总价,把信息保存到数据库中
   为了实现功能,我们需要建立一个供用户填写具体信息的页面 order.jsp  代码如:
 

<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
order.html
</title>
<script type="">
   function RegsiterSumbit()
   {
     with(document.order)
     {
        var user = username.value;
        var cart = creditcard.value;
        if(user == null||user=="")
        {
          alert("请填写用户名");
        }else if(cart==null||cart=="")
        {
          alert("请填写信用卡号码");
        }else
        {
          document.order.submit();
        }
     }

   }
</script>
</head>
<body bgcolor="#ffffff">
<form method="post" name="order" action="processorder">
<table style="TEXT-ALIGN:center" width="590" border="0">
<thead>请输入如下信息</thead>
<tr>
  <td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>用户名:</td>
<td><div align="left"><input type="text" name="username" size="20" /></div></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>邮编:</td>
<td><div align="left"><input type="text" name="zipcode" size="20" /></div></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>电话:</td>
<td><div align="left"><input type="text" name="phone" size="20" /></div></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td>信用卡:</td>
<td><div align="left"><input type="text" name="creditcard" size="20" /></div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="button" value="提 交" onclick="RegsiterSumbit()" /></td>
<td align="left"><input type="reset" value="重 置" /></td>
</tr>
</table>
</form>
</body>
</html>

在order.jsp中,提交的是processorder 这是一个向数据库表中插入信息的Servlet 具体代码是

public void doPost(HttpServletRequest request, HttpServletResponse response) throws
            ServletException, IOException {
       request.setCharacterEncoding("GBK");
       HttpSession session = request.getSession();
       //获取输入的表单元素
       String username = request.getParameter("username");
       String zipcode = request.getParameter("zipcode");
       String phone = request.getParameter("phone");
       String creditcard = request.getParameter("creditcard");
       //读出总的价钱
       double total = ((Double)session.getAttribute("total")).doubleValue();
       TitlesBean db = new TitlesBean();
       db.saveOrder(username,zipcode,phone,creditcard,total);
       request.getRequestDispatcher("bye.jsp").forward(request,response);
       session.invalidate();
    }

 

在这个Servlet里面进行操作时 我们需要一个向数据库插入数据的方法,OrderOperation

里面的方法 代码是

public int saveOrder(String username,String zipcode,String phone,String creditcard,double total)
   {
       int rs = 0;
       String sql = "insert into BookOrder(username,zipcode,phone,creditcard,total) values(?,?,?,?,?)";
    try {
        this.conn = db.getConn();
        this.pstmt = conn.prepareStatement(sql);
        this.pstmt.setString(1, username);
        this.pstmt.setString(2, zipcode);
        this.pstmt.setString(3, phone);
        this.pstmt.setString(4, creditcard);
        this.pstmt.setDouble(5, total);
        System.out.println(sql);
        this.pstmt.execute();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }finally {
           db.closeStatement(pstmt);
           db.closeConn(conn);
       }
      return rs;
   }

 

通过调用saveOrder方法,可以向BookOrder表中插入交易信息(用户名,邮编,电话,信用卡号,当次消费金额)

成功后可以转向成功页面 bye.jsp  大家可以自己定义写法