[原创]java WEB学习笔记33:Session 案例 之 购物车
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用
内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。
本人互联网技术爱好者,互联网技术发烧友
微博:伊直都在0221
QQ:951226918
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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 }