1. 程式人生 > >Session實現購物車(經典)

Session實現購物車(經典)

1:step-1.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>
<h4>Step1:選擇要購買的圖書:</h4>
<form action="<%=request.getContextPath()%>/processStep1" method="post">
   <table border="1" cellpadding="10" cellspacing="0">
   <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>Struts2</td>
     <td><input type="checkbox" name="book" value="Struts2"/></td>
   </tr>
   <tr>
     <td>Spring</td>
     <td><input type="checkbox" name="book" value="Spring"/></td>
   </tr>
   <tr>
     <td>Hibernate</td>
     <td><input type="checkbox" name="book" value="Hibernate"/></td>
   </tr>
   <tr align="center">
     <td colspan="2">
        <input type="submit" value="Submit"/>
     </td>
   </tr>
   </table>
</form>
</body>
</html>

 2:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Cookie</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description>Cookie</description>
    <display-name>ProcessStep1Servlet</display-name>
    <servlet-name>ProcessStep1Servlet</servlet-name>
    <servlet-class>com.shoppingcart.ProcessStep1Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ProcessStep1Servlet</servlet-name>
    <url-pattern>/processStep1</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ProcessStep2Servlet</display-name>
    <servlet-name>ProcessStep2Servlet</servlet-name>
    <servlet-class>com.shoppingcart.ProcessStep2Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ProcessStep2Servlet</servlet-name>
    <url-pattern>/processStep2</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.test.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/testServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>TokenServlet</servlet-name>
    <servlet-class>com.test.TokenServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TokenServlet</servlet-name>
    <url-pattern>/tokenServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>ValidateColorServlet</servlet-name>
    <servlet-class>com.test.ValidateColorServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ValidateColorServlet</servlet-name>
    <url-pattern>/validateColorServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>CheckCodeServlet</servlet-name>
    <servlet-class>com.test.CheckCodeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ValidateColorServlet</servlet-name>
    <url-pattern>/checkCodeServlet</url-pattern>
  </servlet-mapping>
</web-app>

 3:servlet:ProcessStep1Servlet

package com.shoppingcart;


import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ProcessStep1Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//1:獲取選中的圖書資訊
String [] books=request.getParameterValues("book");
//2:把圖書資訊放入到HttpSession中
request.getSession().setAttribute("books",books);;
//3:重定向到頁面shoppingcart/step-2.jsp
//System.out.println(request.getContextPath()+"/shoppingcart/step-2.jsp");
response.sendRedirect(request.getContextPath()+"/shoppingcart/step-2.jsp");
}


}

4:step-2.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>

<h4>Step2: 請輸入寄送地址和信用卡資訊</h4>

<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>

 5:ProcessStep2Servlet

package com.shoppingcart;


import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;




public class ProcessStep2Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
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 session = request.getSession();
session.setAttribute("customer", customer);
response.sendRedirect(request.getContextPath() + "/shoppingcart/confirm.jsp");
}


}

 6:confirm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="com.shoppingcart.Customer"%>
<!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>
<%
 request.setCharacterEncoding("UTF-8");
  Customer customer=(Customer)session.getAttribute("customer");
  String [] books=(String [])session.getAttribute("books");
%>
<table>
<tr>
<td>顧客:</td>
<td><%=customer.getName()%></td>
</tr>
<tr>
<td>地址:</td>
<td><%=customer.getAddress() %></td>
</tr>
<tr>
<td>卡的型別:</td>
<td><%=customer.getCardType() %></td>
</tr>
<tr>
<td>卡號:</td>
<td><%=customer.getCard() %></td>
</tr>
<tr>
  <td>Books:</td>
  <td>
      <%
         for(String book:books)
         out.print(book);
              out.print("<br/>");
      %>
  </td>
</tr>
</table>
</body>
</html>