三个jsp和两个Servlet组成:在WebContent下边建立一个shoppingcart文件夹,将三个jsp文件放在里面:

1.建立一个step1.jsp文件,出现一个表格,是一个复选框,可以选择要购买的书籍,完毕后,点击Submit,跳转到Servlet类 ProcessStep1Servlet里面

<%@ 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>
<h2>step1: 选择要购买的书籍!</h2> <form action="<%= request.getContextPath() %>/processStep1Servlet" method="post"> <table border="1" cellpadding="10" cellspacing="0">
<tr>
<th>书名</th>
<th>点击购买</th>
</tr> <tr>
<td>Oracle</td>
<td><input type="checkbox" name="book" value="Oracle"/></td>
</tr> <tr>
<td>java</td>
<td><input type="checkbox" name="book" value="java"/></td>
</tr> <tr>
<td>C++</td>
<td><input type="checkbox" name="book" value="C++"/></td>
</tr> <tr>
<td>mysql</td>
<td><input type="checkbox" name="book" value="mysql"/></td>
</tr> <tr>
<td>WEB</td>
<td><input type="checkbox" name="book" value="WEB"/></td>
</tr> <tr>
<td colspan="2"> <input type="submit" value="Submit"/></td>
</tr> </table> </form>
</body>
</html>

2.建立一个Servlet类 ProcessStep1Servlet,里面有doPost方法,可实现session方法(好处就是获取用户选择书名的id,保存到后边再使用),获取用户选择的书名,使绝对路径的方法重定向到step1.jsp页面; response.sendRedirect(request.getContextPath()+"/shoppingcart/step2.jsp");

public class ProcessStep1Servlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  //1. 获取选中的图书的信息
  String [] books = request.getParameterValues("book");
  //2. 把图书信息放入到 HttpSession 中
  request.getSession().setAttribute("books", books);

  //2. 重定向页面到 shoppingcart/step-2.jsp
  System.out.println(request.getContextPath() + "/shoppingcart/step-2.jsp");
  response.sendRedirect(request.getContextPath() + "/shoppingcart/step-2.jsp");
  }

}

3.在step2.jsp页面,是用户输入个人信息页面,付款,发送货物需要的信息,然后跳转到Servlet类 processStep2Servlet 对用户的信息封装到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>
<h2>step2: 请输入寄送地址和信用卡</h2> <form action="<%= request.getContextPath() %>/processStep2Servlet" 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="text" name="address"/></td>
</tr> <tr>
<td>联系电话:</td>
<td><input type="text" name="phone"/></td>
</tr> <tr >
<td colspan="2">信用卡信息:</td>
</tr> <tr>
<td>信用卡种类</td>
<td>
<input type="radio" name="cardType" value="nong"/>nong
<input type="radio" name="cardType" value="gong"/>gong
</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>

4.建立一个Servlet类,里面有doPost方法,对用户的信息封装到customer类里面,session实例,保存用户的id信息,便于后边输出,然后重定向到confirm.jsp页面 ,跳转一面使用了绝对路径:response.sendRedirect(request.getContextPath()+"/shoppingcart/confirm.jsp");

public class ProcessStep2Servlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  //1. 获取请求参数: 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);

  //2. 把请求信息存入到 HttpSession 中

  HttpSession session = request.getSession();
  session.setAttribute("customer", customer);

  //3. 重定向页面到 confirm.jsp
  response.sendRedirect(request.getContextPath() + "/shoppingcart/confirm.jsp");
  }

}

5.confirm.jsp页面,使用了session实例,将前边的用户选择的书籍和用户输入的个人信息,输出到这个页面

<%@page import="com.lanqiao.javatest.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>
<%
Customer customer=(Customer)session.getAttribute("customer");
String [] books=(String [])session.getAttribute("books");
%> <h2>信息表单</h2>
<table>
<tr>
<td>顾客姓名:</td>
<td><%=customer.getName() %></td>
</tr> <tr>
<td>顾客地址:</td>
<td><%=customer.getAddress() %></td>
</tr> <tr>
<td>顾客联系电话:</td>
<td><%=customer.getPhone() %></td>
</tr> <tr>
<td>顾客卡类型:</td>
<td><%=customer.getCardType() %></td>
</tr> <tr>
<td>顾客的卡号:</td>
<td><%=customer.getCard() %></td>
</tr> <tr>
<td>您购买的书:</td>
<td>
<%
for(String book:books){
out.print(book);
out.print("\t\t");
}
%>
</td> </tr> </table>
</body>
</html>

6.lib下边的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" 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">
<servlet>
<description></description>
<display-name>ProcessStep1Servlet</display-name>
<servlet-name>ProcessStep1Servlet</servlet-name>
<servlet-class>com.lanqiao.javatest.ProcessStep1Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ProcessStep1Servlet</servlet-name>
<url-pattern>/processStep1Servlet</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>ProcessStep2Servlet</display-name>
<servlet-name>ProcessStep2Servlet</servlet-name>
<servlet-class>com.lanqiao.javatest.ProcessStep2Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ProcessStep2Servlet</servlet-name>
<url-pattern>/processStep2Servlet</url-pattern>
</servlet-mapping>
</web-app>

7.Customer封装类:

package com.lanqiao.javatest;

public class Customer {
private String name;
private String address;
private String phone;
private String cardType;
private String card; public Customer() {
super();
} public Customer(String name, String address, String phone, String cardType, String card) {
super();
this.name = name;
this.address = address;
this.phone = phone;
this.cardType = cardType;
this.card = 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 getPhone() {
return phone;
} public void setPhone(String phone) {
this.phone = phone;
} 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;
} @Override
public String toString() {
return "Customer [name=" + name + ", address=" + address + ", phone=" + phone + ", cardType=" + cardType
+ ", card=" + card + "]";
} }

Session案例:简易的购物车的更多相关文章

  1. 使用jQuery制作一个简易的购物车结算流程

    因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...

  2. js中的经典案例--简易万年历

    js中的经典案例--简易万年历 html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  3. 【Tomcat】JSP使用Session、Cookie实现购物车

    购物界面shop.jsp 初始页面 添加商品后,在session中设置属性,重定向回到shop.jsp,然后根据session的内容显示结果 Cookie设置setMaxAge可以延长session的 ...

  4. 零基础学习java------29---------网络日志数据session案例,runtime(导出jar程序)

    一. 网络日志数据session案例 部分数据 数据中的字段分别为: 访客ip地址,访客访问时间,访客请求的url及协议,网站响应码,网站返回数据量,访客的referral url,访客的客户端操作系 ...

  5. [原创]java WEB学习笔记33:Session 案例 之 购物车

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. 基于session的简易购物车引发的问题

    一.功能描述:  页面如下所示: 运行报错: java.io.FileNotFoundException: E:\apache-tomcat-8.0.37\work\Catalina\localhos ...

  7. express+session实现简易身份认证

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 文章概览 本文基于express.express-session ...

  8. Session案例

    用户登入案例: 按一般的网站登入实例,用户在页面登入页输入账号.密码,验证通过后,在首页显示其"欢迎回来,xxx". 首先完成登入页login.html <!DOCTYPE ...

  9. Nodejs进阶:express+session实现简易身份认证

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 文档概览 本文基于express.express-session ...

随机推荐

  1. C++Primer 第十九章

    //1.控制内存分配: //A:某些应用程序对内存分配有特殊的需求,因此我们无法将标准内存管理机制直接应用于这些程序.它们常常需要自定义内存分配的细节,比如使用关键字new将对象放置在特定的内存空间中 ...

  2. BenchmarkSQL测试脚本实现

    sqlTableCreates DROP SCHEMA IF EXISTS benchmarksql CASCADE; CREATE SCHEMA benchmarksql; create table ...

  3. Leetcode: Evaluate Division

    Equations are given in the format A / B = k, where A and B are variables represented as strings, and ...

  4. JAVA JDBC连接 SQLServer2012 连接失败 端口号错误

    SQLServer2012的SQL Sever 网络配置 我有4个 SQLEXPRESS的协议 SQLSERVER2008的协议 MSSQLSERVER的协议 SQLSERVER2012的协议 他们都 ...

  5. SLF4简介

    The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logg ...

  6. shell学习笔记(2)替换命令··与()的区别

    ·CMD·在执行的时候,shell不管··中的内容是什么,先进性解释,再把解释后的最终结果送给shell,如果解释后的结果不是shell可以行的命令,就会报错.但是仅仅把cmd的执行结果作为文本输出, ...

  7. java数组转化成集合

    package com.shb.web; import java.util.Arrays;import java.util.List; import com.sun.xml.internal.ws.u ...

  8. paper 4:支持向量机系列一: Maximum Margin Classifier —— 支持向量机简介。

    支持向量机即 Support Vector Machine,简称 SVM .我最开始听说这头机器的名号的时候,一种神秘感就油然而生,似乎把 Support 这么一个具体的动作和 Vector 这么一个 ...

  9. [php/html/CSS]给Aptana3 安装 Emmet插件

    aptana studio3 安装 zencoding(Emmet) 插件 zen coding 更名为Emmet emmet 谷歌主页地址:http://code.google.com/p/zen- ...

  10. 【crunch bang】安装firefox,删除iceweasel

    首先,移除iceweasel: apt-get remove iceweasel Then, download the latest Linux build of Firefox directly f ...