session实现简单购物车

25 篇文章 0 订阅

一、实现思路

1、step1.jsp    

     实现一个表单,选择要购买的书籍    action=processStep1

2、ProcessStep1Servlet.java   

    获取step1的数据,重定向到step2

3、step2.jsp

    实现一个表单填写用户信息  action=processStep2

4、ProcessStep2Servlet.java 

    获取step2的数据,重定向到 confirm  

5、confirm.jsp

    显示所有的信息

6、Customer类

    由于step2中填写用户信息需要一个一个获取太烦啦,所以将用户的属性封装到用户类里面

二、实现

1、step1.jsp    

    

<body>
<form action="<%=request.getContextPath()%>/processStep1" method="post">
    <table border="1" cellpadding="10" cellspacing="0">
        <tr>
            <td>书名</td>
            <td>购买</td>
        </tr>
        <tr>
            <td>《JSP》</td>
            <td><input type="checkbox" name="book" value="《JSP》" /></td>
        </tr>
        <tr>
            <td>《SERVLET》</td>
            <td><input type="checkbox" name="book" value="《SERVLET》" /></td>
        </tr>
        <tr>
            <td>《J2EE》</td>
            <td><input type="checkbox" name="book" value="《J2EE》" /></td>
        </tr>
        <tr>
            <td>《MYSQL》</td>
            <td><input type="checkbox" name="book" value="《MYSQL》" /></td>
        </tr>
        <tr>
            <td>《ANDROID》</td>
            <td><input type="checkbox" name="book" value="《ANDROID》" /></td>
        </tr>
        <tr>
            <td colspan="2">
                <input  type="submit" value="submit"/>
            </td>
        </tr>
    </table>
</form>
</body>

2、ProcessStep1Servlet.java   

   

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1、获取请求信息
        request.setCharacterEncoding("UTF-8");
        String [] books=request.getParameterValues("book");

        //2、将购书信息放入到session中
          request.getSession().setAttribute("books",books);
        //3、页面重定向到step2.jsp
        response.sendRedirect(request.getContextPath()+"/shoppingcart/step2.jsp");   //写绝对路径防止找不到
    }

3、step2.jsp

   

<body>
<h3>输入个人信息:</h3>
<form action="<%=request.getContextPath()%>/processStep2" method="post">
    <table border="1" cellpadding="10" cellspacing="0">
        <tr>
            <td colspan="2">寄送信息</td>
        </tr>
        <tr>
            <td>姓名:</td>
            <td><input type="text" name="name"  /></td>
        </tr>
        <tr>
            <td>地址:</td>
            <td><input type="address" name="address" /></td>
        </tr>
        <tr>
            <td colspan="2">付款信息</td>
        </tr>
        <tr>
            <td>付款种类:</td>
            <td><input type="radio" name="payType"  value="微信" />微信
            <input type="radio" name="payType"  value="支付宝" />支付宝
            <input type="radio" name="payType"  value="银行卡" />银行卡</td>
        </tr>
        <tr>
            <td>卡号:</td>
            <td><input type="text" name="cartNumber" /></td>
        </tr>
        <tr>
            <td colspan="2">
                <input  type="submit" value="submit"/>
            </td>
        </tr>
    </table>
</form>
</body>

4、ProcessStep2Servlet.java 

   

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1、获取请求信息
        request.setCharacterEncoding("UTF-8");
        String name=request.getParameter("name");
        String address=request.getParameter("address");
        String payType=request.getParameter("payType");
        String cartNumber=request.getParameter("cartNumber");

        Customer customer=new Customer(name,address,payType,cartNumber);

        //2、将购书信息放入到session中
          HttpSession session=request.getSession();
          session.setAttribute("customer",customer);
        //3、页面重定向到confirm.jsp
        response.sendRedirect(request.getContextPath()+"/shoppingcart/confirm.jsp");   //写绝对路径防止找不到
    }

5、confirm.jsp

   

<body>
<h3>核对个人信息:</h3>
<%
    Customer customer= (Customer) session.getAttribute("customer");
    String [] books= (String[]) session.getAttribute("books");
%>
    <table border="1" cellpadding="10" cellspacing="0">
        <tr>
            <td colspan="2">寄送信息</td>
        </tr>
        <tr>
            <td>姓名:</td>
            <td><%=customer.getName()%></td>
        </tr>
        <tr>
            <td>地址:</td>
            <td><%=customer.getAddress()%></td>
        </tr>
        <tr>
            <td colspan="2">付款信息</td>
        </tr>
        <tr>
            <td>付款种类:</td>
            <td><%=customer.getPayType()%></td>
        </tr>
        <tr>
            <td>卡号:</td>
            <td><%=customer.getCartNumber()%></td>
        </tr>
        <tr>
            <td colspan="2">购书:</td>
        </tr>
        <tr>
            <td colspan="2">
                <%
                    for (String book :books){
                        out.println(book);
                    }
                %>
            </td>

        </tr>

    </table>

</body>

6、Customer类

   

public class Customer {
    private String name;
    private String address;
    private String payType;
    private String cartNumber;

    public Customer(String name, String address, String payType, String cartNumber) {
        this.name = name;
        this.address = address;
        this.payType = payType;
        this.cartNumber = cartNumber;
    }

    public Customer() {
    }

    public String getName() {
        return name;
    }

    public String getAddress() {
        return address;
    }

    public String getPayType() {
        return payType;
    }

    public String getCartNumber() {
        return cartNumber;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    public void setCartNumber(String cartNumber) {
        this.cartNumber = cartNumber;
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值