1. 简易session版购物车:创建一个简单的购物车模型,由三个 jsp 和两个 Servlet 组成:
checkbox 是一组的话 name必须一致
代码:
1)step-1.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>step-1.jsp</title> 8 </head> 9 <body> 10 <h4>Step1:选择要购买的图书</h4> 11 12 <form action="<%= request.getContextPath() %>/processStep1" method="post" > 13 <table border="1" cellpadding="10" cellspacing="0"> 14 <tr> 15 <td>书名</td> 16 <td>购买</td> 17 </tr> 18 19 <tr> 20 <td>Java</td> 21 <td><input type="checkbox" name="book" value="Java"/></td> 22 </tr> 23 24 <tr> 25 <td>Oracle</td> 26 <td><input type="checkbox" name="book" value="Oracle"/></td> 27 </tr> 28 29 <tr> 30 <td>Struts</td> 31 <td><input type="checkbox" name="book" value="Struts"/></td> 32 </tr> 33 34 <tr> 35 <td colspan="2" > 36 <input align="center" type="submit" value="Submit"/> 37 </td> 38 39 </tr> 40 41 42 </table> 43 </form> 44 45 </body> 46 </html>
2)step-2.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Step-2.jsp</title> 8 </head> 9 <body> 10 <form action="<%= request.getContextPath() %>/processStep2" method="post"> 11 <h4>step2: 请输入寄送的地址和信用卡信息</h4> 12 <table border="1" cellpadding="10" cellspacing="0"> 13 <tr> 14 <td colspan="2" align="center">寄送信息</td> 15 </tr> 16 17 <tr> 18 <td>姓名:</td> 19 <td><input type="text" name="name"/></td> 20 </tr> 21 22 <tr> 23 <td>寄送地址:</td> 24 <td><input type="text" name="address"/></td> 25 </tr> 26 27 <tr> 28 <td colspan="2" align="center">信用卡信息</td> 29 </tr> 30 31 <tr> 32 <td>种类:</td> 33 <td> 34 <input type="radio" name="cardType" value="Visa"/>Visa 35 <input type="radio" name="cardType" value="Master"/>Master 36 37 </td> 38 </tr> 39 40 <tr> 41 <td>卡号:</td> 42 <td><input type="text" name="card"/></td> 43 </tr> 44 45 <tr> 46 <td colspan="2"> 47 <input align="center" type="submit" value="Submit"/></td> 48 </tr> 49 </table> 50 </form> 51 </body> 52 </html>
3)confim.jsp
1 <%@page import="com.jason.shoopingcart.bean.Customer"%>
2 <%@ page language="java" contentType="text/html; charset=UTF-8"
3 pageEncoding="UTF-8"%>
4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <html>
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
8 <title>Insert title here</title>
9 </head>
10
11 <body>
12 <%
13 Customer customer = (Customer)session.getAttribute("customer");
14 String[] books = (String[])session.getAttribute("books");
15 %>
16 <table border="1" cellpadding="10" cellspacing="0">
17 <tr>
18 <td>顾客姓名:</td>
19 <td><%= customer.getName() %></td>
20 </tr>
21
22 <tr>
23 <td>地址:</td>
24 <td><%= customer.getAddress() %></td>
25 </tr>
26 <tr>
27 <td>卡号:</td>
28 <td><%= customer.getCard()%></td>
29 </tr>
30 <tr>
31 <td>卡的类型:</td>
32 <td><%= customer.getCardType()%></td>
33 </tr>
34 <tr>
35 <td>买的书:</td>
36 <td>
37 <%
38 for(String book : books ){
39 out.print(book);
40 out.print("<br>");
41 }
42 %>
43 </td>
44 </tr>
45 </table>
46
47 </body>
48 </html>
4)ProcessStep1Servlet.java
1 1 package com.jason.shoopingcart.servlet;
2 2
3 3 import java.io.IOException;
4 4 import javax.servlet.ServletException;
5 5 import javax.servlet.annotation.WebServlet;
6 6 import javax.servlet.http.HttpServlet;
7 7 import javax.servlet.http.HttpServletRequest;
8 8 import javax.servlet.http.HttpServletResponse;
9 9
10 10 /**
11 11 * Servlet implementation class ProcessStep1Servlet
12 12 */
13 13 @WebServlet("/processStep1")
14 14 public class ProcessStep1Servlet extends HttpServlet {
15 15 private static final long serialVersionUID = 1L;
16 16
17 17
18 18 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
19 19
20 20 //1.获取选中的图书的信息
21 21 String[] books = request.getParameterValues("book");
22 22
23 23 //2.把图书信息放入到HttpSession 中
24 24 request.getSession().setAttribute("books", books);
25 25
26 26 //3.重定向到shoppingcart/step-2.jsp
27 27 response.sendRedirect(request.getContextPath() + "/shoppingcart/step-2.jsp");
28 28
29 29 }
30 30
31 31 }
5)ProcessStep2Servlet.java
1 1 package com.jason.shoopingcart.servlet;
2 2
3 3 import java.io.IOException;
4 4
5 5 import javax.servlet.ServletException;
6 6 import javax.servlet.annotation.WebServlet;
7 7 import javax.servlet.http.HttpServlet;
8 8 import javax.servlet.http.HttpServletRequest;
9 9 import javax.servlet.http.HttpServletResponse;
10 10 import javax.servlet.http.HttpSession;
11 11
12 12 import com.jason.shoopingcart.bean.Customer;
13 13
14 14 /**
15 15 * Servlet implementation class ProcessStep2Servlet
16 16 */
17 17 @WebServlet("/processStep2")
18 18 public class ProcessStep2Servlet extends HttpServlet {
19 19 private static final long serialVersionUID = 1L;
20 20
21 21
22 22 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
23 23 //1. 获取请求参数 name ,address ,cardType,card
24 24 request.setCharacterEncoding("UTF-8");
25 25 String name = request.getParameter("name");
26 26 String address = request.getParameter("address");
27 27 String cardType = request.getParameter("cardType");
28 28 String card = request.getParameter("card");
29 29
30 30 Customer customer = new Customer(name, address, cardType, card);
31 31
32 32 //2.把请求存储到Httpsession中
33 33 HttpSession session = request.getSession();
34 34 session.setAttribute("customer", customer);
35 35
36 36 //3.重定向到confirm.jsp
37 37 response.sendRedirect(request.getContextPath() + "/shoppingcart/confirm.jsp");
38 38 }
39 39
40 40 }
6)Customer.java
1 package com.jason.shoopingcart.bean;
2
3 public class Customer {
4 private String name;
5 private String address;
6 private String cardType;
7 private String card;
8
9 public String getName() {
10 return name;
11 }
12
13 public void setName(String name) {
14 this.name = name;
15 }
16
17 public String getAddress() {
18 return address;
19 }
20
21 public void setAddress(String address) {
22 this.address = address;
23 }
24
25 public String getCardType() {
26 return cardType;
27 }
28
29 public void setCardType(String cardType) {
30 this.cardType = cardType;
31 }
32
33 public void setCard(String card) {
34 this.card = card;
35 }
36 public String getCard() {
37 return card;
38 }
39
40
41
42 public Customer(String name, String address, String cardType, String card) {
43 super();
44 this.name = name;
45 this.address = address;
46 this.cardType = cardType;
47 this.card = card;
48 }
49
50 public Customer() {
51 super();
52 }
53
54 }