victory的博客

长安一片月,万户捣衣声

0%

基于JavaWeb的网上购物商城 | 确认订单

确认订单

实现功能:
用户在购物车页面点击“确认订单”,在数据库将之前提交的订单的状态改为已支付,并向数据库写入收货人、收获地址、电话等信息;
确认订单后跳转到我的订单页面。

order_info.jsp
修改order_info.jsp中的以下代码,当点击”确认订单“时将表单信息提交。

<form class="form-horizontal" id="form" method="post" action="${pageContext.request.contextPath}/product"
    style="margin-top: 5px; margin-left: 150px;">
    <input type="hidden" name="method" value="submitOrder">
    <input type="hidden" name="oid" value="${order.oid}">
    <div class="form-group">
        <label for="username" class="col-sm-1 control-label">地址</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="address" id="username"
                placeholder="请输入收货地址">
        </div>
    </div>
    <div class="form-group">
        <label for="inputPassword3" class="col-sm-1 control-label">收货人</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="username" id="inputPassword3"
                placeholder="请输收货人">
        </div>
    </div>
    <div class="form-group">
        <label for="confirmpwd" class="col-sm-1 control-label">电话</label>
        <div class="col-sm-5">
            <input type="text" name="phone" class="form-control" id="confirmpwd"
                placeholder="请输入联系方式">
        </div>
    </div>
</form>


<hr />

<div style="margin-top: 5px; margin-left: 150px;">
    
    
    <hr />
    <p style="text-align: right; margin-right: 100px;">
        <a href="#" onclick="submitOrder()">
            <img src="./images/finalbutton.gif" width="204" height="51"
            border="0" />
        </a>
    </p>
    <hr />

</div>

ProductServlet.java
在ProductServlet的doGet方法中添加submitOrder的判断并完成submitOrder方法。

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String method = request.getParameter("method");
    if("getProById".equals(method)) {
        getProById(request, response);
    }else if("findListByCate".equals(method)) {
        findListByCate(request, response);
    }else if("cart".equals(method)) {
        cart(request, response);
    }else if("delCart".equals(method)) {
        delCart(request, response);
    }else if("clearCart".equals(method)) {
        clearCart(request, response);
    }else if("showOrder".equals(method)) {
        showOrder(request, response);
    }else if("submitOrder".equals(method)) {
        submitOrder(request, response);
    }
}

public void submitOrder(HttpServletRequest request, HttpServletResponse response) {
    // TODO Auto-generated method stub
    try {
        String oid = request.getParameter("oid");
        System.out.println("oid" + oid);
        String username = request.getParameter("username");
        String address = request.getParameter("address");
        String phone = request.getParameter("phone");
        
        Order order = new Order();
        
        order.setAddress(address);
        order.setName(username);
        order.setTelephone(phone);
        order.setOid(oid);
        
        ProductService ps = new ProductService();
        ps.updateOrder(order);
        
        HttpSession session = request.getSession();
        session.removeAttribute("cart");
        session.removeAttribute("orders");
        
        response.sendRedirect(request.getContextPath() + "/product?method=myOrder");
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

ProductService.java
在ProductService中添加updateOrder方法。

public void updateOrder(Order order) throws SQLException {
    // TODO Auto-generated method stub
    ProductDao pd = new ProductDao();
    pd.updateOrder(order);
}

ProductDao.java
在ProductDao中添加updateOrder方法。

public void updateOrder(Order order) throws SQLException {
    // TODO Auto-generated method stub
    QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
    
    String sql = "update orders set address=?,name=?,telephone=?,state=1 where oid=?";
    
    System.out.println(order.getOid());
    
    qr.update(sql, order.getAddress(), order.getName(), order.getTelephone(), order.getOid());
}