现在我们的电子书店系统已经可以购买书籍了,但是作为一个商城网站。还缺少了一项工作-结账,我们为用户提供一个录入个人信息的页面,并同时计算出当前购买书籍的总价,把信息保存到数据库中
为了实现功能,我们需要建立一个供用户填写具体信息的页面 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"> </td> </tr> <tr> <td>用户名:</td> <td><div align="left"><input type="text" name="username" size="20" /></div></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td>邮编:</td> <td><div align="left"><input type="text" name="zipcode" size="20" /></div></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td>电话:</td> <td><div align="left"><input type="text" name="phone" size="20" /></div></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td>信用卡:</td> <td><div align="left"><input type="text" name="creditcard" size="20" /></div></td> </tr> <tr> <td> </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 大家可以自己定义写法
阅读(545) | 评论(0) | 转发(1) |