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 + "]";
}
}
HttpSession之简易购物车的更多相关文章
- Session机制二(简易购物车案例)
一:案例一(简易购物车) 1.目录结构 2.step1.jsp <%@ page language="java" contentType="text/html; c ...
- javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...
- Java servlet 实现的简易购物车
首页 2.购买页 3.购物车页 1. 首页代码 发送一个post请求 <!DOCTYPE html><html lang="en"><head> ...
- 基于session的简易购物车引发的问题
一.功能描述: 页面如下所示: 运行报错: java.io.FileNotFoundException: E:\apache-tomcat-8.0.37\work\Catalina\localhos ...
- angular初始用——简易购物车
<html> <head> <meta charset="utf-8"> <script src="js/angular.js& ...
- [ Python -1 ] 简易购物车程序
练习: 1. 要求用户输入总资产,例如:2000 2. 显示商品列表,让用户根据序号选择商品,加入购物车 3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. goods = [{' ...
- ~~小练习:python的简易购物车~~
进击のpython 1,用户先给自己的账户充钱:比如先充3000元. 2,有如下的一个格式: goods = [{"name": "电脑", "pri ...
- Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车
让我们来实现一个简单的 “电商购物车” 需求来了解一下如何使用 Newbe.Claptrap 进行开发. 业务需求 实现一个简单的 “电商购物车” 需求,这里实现几个简单的业务: 获取当前购物车中的商 ...
- 简易购物车 --day2
代码段 f =float(input('输入你的工资')) goods=['1.apple','2.mac','3.ph','4.python','5.php'] price=[35,26.5,14, ...
随机推荐
- muduo网络库源码学习————Timestamp.cc
今天开始学习陈硕先生的muduo网络库,moduo网络库得到很多好评,陈硕先生自己也说核心代码不超过5000行,所以我觉得有必要拿过来好好学习下,学习的时候在源码上面添加一些自己的注释,方便日后理解, ...
- Scrapy爬虫快速入门
安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...
- 学习笔记之MySQL的使用
什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库. 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据存储在文 ...
- 3-MyBatisPlus教程(CRUD-上)
1,增加MP日志配置 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:m ...
- 从入门到精通(分布式文件系统架构)-FastDFS,FastDFS-Nginx整合,合并存储,存储缩略图,图片压缩,Java客户端
导读 互联网环境中的文件如何存储? 不能存本地应用服务器 NFS(采用mount挂载) HDFS(适合大文件) FastDFS(强力推荐
- vim基础快捷键
vim快捷键 1. 移动光标 快捷键 作用 h 光标向左移动一个字符 j 光标向下移动一个字符 k 光标向上移动一个字符 l 光标向右移动一个字符 6j 向下移动6个字符 Ctrl+f 屏幕向下移动一 ...
- 玩转FPGA边缘视觉——4k视频图像抓取
随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080P分辨率的视频已经非常流行,2K甚至4K分辨率的图像也在火热发展中. ...
- 【Hadoop离线基础总结】Hadoop的架构模型
Hadoop的架构模型 1.x的版本架构模型介绍 架构图 HDFS分布式文件存储系统(典型的主从架构) NameNode:集群当中的主节点,主要用于维护集群当中的元数据信息,以及接受用户的请求,处理用 ...
- STM32 OSAL操作系统抽象层的移植
文章目录 什么是 OSAL? 源码安装 Linux 上OSAL的移植 STM32上OSAL的移植 关键点 测试代码 结语 附件 什么是 OSAL? 今天同学忽然问我有没有搞过OSAL,忽然间一头雾水, ...
- Algorithms - Priority Queue - 优先队列
Priority queue - 优先队列 相关概念 Priority queue优先队列是一种用来维护由一组元素构成的集合S的数据结构, 其中的每一种元素都有一个相关的值,称为关键字(key). 一 ...