• HttpSession之简易购物车


    创建一个简单的购物车模型,由三个 jsp 和两个 Servlet 组成:

     step1.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <h3>Step1:选择要购买的图书</h3>
        <form action="<%=request.getContextPath() %>/processStep1" method="post">
            <table cellpadding="10" cellspacing="0" border="1">
    
                <tr>
                    <td>书名</td>
                    <td>购买</td>
                </tr>
                <tr>
                    <td>Java</td>
                    <td><input type="checkbox" name="book" value="Java"/></td>
                </tr>
                <tr>
                    <td>Oracle</td>
                    <td><input type="checkbox" name="book" value="Oracle"/></td>
                </tr>
                <tr>
                    <td>Struts</td>
                    <td><input type="checkbox" name="book" value="Struts"/></td>
                </tr>
                <tr>
                    <td colspan="2"><input type="submit"  value="Submit"/></td>
                </tr>
            </table>
    
        </form>
    </body>
    </html>

    ProcessStep1Servlet

    package com.aff.javaweb;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet("/processStep1")
    public class ProcessStep1Servlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 获取选中的图书信息
            String[] books = request.getParameterValues("book");// 多个book 放在数组中
            // 把图书信息放入到HttpSession中
            request.getSession().setAttribute("books", books);
            // 重定向页面到shoppingcart/step2.jsp
            // response.sendRedirect("step2.jsp");//这个为相对路径,在同一目录下没问题的
            System.out.println(request.getContextPath() + "/shoppingcart/step2.jsp");///WebCookieT5/shoppingcart/step2.jsp
            response.sendRedirect(request.getContextPath() + "/shoppingcart/step2.jsp");// 绝对路径
        }
    
    }

    step2.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <h3>Step2: 请输入寄送地址和信用卡信息</h3>
        <form action="<%=request.getContextPath() %>/processStep2" method="post">
            <table cellpadding="10" cellspacing="0" border="1">
    
                <tr>
                    <td colspan="2">基本信息</td>
                </tr>
                <tr>
                    <td>姓名</td>
                    <td><input type="text" name="name" /></td>
                </tr>
                <tr>
                    <td>寄送地址</td>
                    <td><input type="text" name="address" /></td>
                </tr>
                <tr>
                    <td colspan="2">寄送信用卡信息</td>
                </tr>
                <tr>
                    <td >种类</td>
                    <td >
                    <input type="radio" name="cardType" value="visa" />Visa
                    <input type="radio" name="cardType" value="Master" />Master
                    </td>
                </tr>
                <tr>
                    <td>卡号</td>
                    <td><input type="text" name="card"/></td>
                </tr>
    
                <tr>
                    <td colspan="2"><input type="submit" value="Submit" /></td>
                </tr>
    
            </table>
        </form>
    </body>
    </html>

    ProcessStep2Servlet

    package com.aff.javaweb;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet("/processStep2")
    public class ProcessStep2Servlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 获取请求参数 name address cardType card
            String name = request.getParameter("name");
            String address = request.getParameter("address");
            String cardType = request.getParameter("cardType");
            String card = request.getParameter("card");
            // 把上面四个属性封装成一个对象,方便很多 
            Customer customer = new Customer(name, address, cardType, card);
    // 把请求信息传入到HttpSession中 request.getSession().setAttribute("customer", customer); // 重定向页面到confirm.jsp response.sendRedirect(request.getContextPath() + "/shoppingcart/confirm.jsp"); } }

    confirm.jsp

    <%@page import="com.aff.javaweb.Customer"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <%
            //把之前放入session中的customer对象获取过来
            Customer customer = (Customer) session.getAttribute("customer");
            String[] books = (String[]) session.getAttribute("books");
        %>
        <table bor>
            <tr>
                <td>顾客姓名:</td>
                <td><%=customer.getName()%></td>
            </tr>
            <tr>
                <td>地址:</td>
                <td><%=customer.getAddress()%></td>
            </tr>
            <tr>
                <td>卡号:</td>
                <td><%=customer.getCard()%></td>
            </tr>
            <tr>
                <td>卡的类型:</td>
                <td><%=customer.getCardType()%></td>
            </tr>
            <tr>
                <td>Books:</td>
                <td>
                    <%
                        for (String book : books) {
                            out.print(book);
                            out.print("<br>");
                        }
                    %>
                </td>
            </tr>
        </table>
    </body>
    </html>

    Customer
    package com.aff.javaweb;
    
    public class Customer {
        private String name;
        private String address;
        private String cardType;
        private String card;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public String getCardType() {
            return cardType;
        }
    
        public void setCardType(String cardType) {
            this.cardType = cardType;
        }
    
        public String getCard() {
            return card;
        }
    
        public void setCard(String card) {
            this.card = card;
        }
    
        public Customer() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        public Customer(String name, String address, String cardType, String card) {
            super();
            this.name = name;
            this.address = address;
            this.cardType = cardType;
            this.card = card;
        }
    
        @Override
        public String toString() {
            return "Customer [name=" + name + ", address=" + address + ", cardType=" + cardType + ", card=" + card + "]";
        }
    
    }
    All that work will definitely pay off
  • 相关阅读:
    数据结构之单链表及其函数算法
    数据结构之KMP算法next数组
    FastDFS的简单使用
    富文本编辑器kindeditor的使用
    SpringSecurity的简单入门
    Dubbo+zookeeper实现单表的增删改查
    windows批量删除当前目录以及子目录的所有空文件夹
    Echarts的简单入门
    基于JAX-RS规范的webService入门
    RESTFull开发风格
  • 原文地址:https://www.cnblogs.com/afangfang/p/12743812.html
Copyright © 2020-2023  润新知