一:案例一(简易购物车)

1.目录结构

  

2.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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Step1:选择要购买的图书</h2>
<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>Struct2</td>
<td><input type="checkbox" name="book" value="Struct2"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit"/>
</td>
</tr>
</table>
</form>
</body>
</html>

3.ProcessStep1Servlet.java

 package 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; /**
* Servlet implementation class ProcessStep1Servlet
*/
@WebServlet("/processStep1")
public class ProcessStep1Servlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取选中的图书的信息
String[] books=request.getParameterValues("book"); //将图书放进HttpSession中
request.getSession().setAttribute("books", books); //重定向页面到shopcart/step2.jsp
//这里使用的绝对路径,同理,在jsp里也需要使用相对路径
response.sendRedirect(request.getContextPath()+"/shopCart/step2.jsp");
} }

4.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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Step2:请输入信用卡的信息</h2>
<form action="<%=request.getContextPath()%>/processStep2" 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 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="cardNum" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html><%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>Step2:请输入信用卡的信息</h2>
<form action="<%=request.getContextPath()%>/processStep2" 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 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="cardNum" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>

5.ProcessStep2Servlet.java

 package 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; /**
* Servlet implementation class ProcessStep2Servlet
*/
@WebServlet("/processStep2")
public class ProcessStep2Servlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求参数name address cardType cardNum
String name=request.getParameter("name");
String address=request.getParameter("address");
String cardType=request.getParameter("cardType");
String cardNum=request.getParameter("cardNum"); //将参入放进一个对象中
Customer customer=new Customer(name, address, cardType, cardNum); //将请求信息存入HtppSession中
request.getSession().setAttribute("customer", customer); //重定向到confirm.jsp
response.sendRedirect(request.getContextPath()+"/shopCart/confirm.jsp");
} }

6.conform.jsp

 <%@page import="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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
Customer customer=(Customer)session.getAttribute("customer");
String[] books=(String[])session.getAttribute("books");
%>
<h2>Step3:请确认</h2>
<table>
<tr>
<td>顾客姓名</td>
<td><%=customer.getName() %></td>
</tr>
<tr>
<td>顾客地址</td>
<td><%=customer.getAddress() %></td>
</tr>
<tr>
<td>顾客卡号</td>
<td><%=customer.getCardNum() %></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>

7.补充简单bean,Customer.java

 package javaweb;

 public class Customer {
private String name;
private String address;
private String cardType;
private String cardNum;
public Customer() { }
public Customer(String name, String address, String cardType, String cardNum) {
super();
this.name = name;
this.address = address;
this.cardType = cardType;
this.cardNum = cardNum;
}
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 getCardNum() {
return cardNum;
}
public void setCardNum(String cardNum) {
this.cardNum = cardNum;
} }

8.展示结果

  

二:

Session机制二(简易购物车案例)的更多相关文章

  1. [转]用 Jsp 的 Session 机制编写的购物车程序

    一.构建的商品类 //写一个Goods类,并定义商品的各个属性,返回商品属性的方法,以及商品对象进行比较的方法//Goods.java package com.viita.Shop; public c ...

  2. DOM操作相关案例 模态对话框,简易留言板,js模拟选择器hover,tab选项卡,购物车案例

    1.模态框案例 需求: 打开网页时有一个普通的按钮,点击当前按钮显示一个背景图,中心并弹出一个弹出框,点击X的时候会关闭当前的模态框 代码如下: <!DOCTYPE html> <h ...

  3. C#基础知识之理解Cookie和Session机制

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  4. Cookie/Session机制详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  5. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

  6. [转]Cookie/Session机制详解

    原文地址:http://blog.csdn.net/fangaoxin/article/details/6952954 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用 ...

  7. 关于cookie的文章(cookie与session机制)

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  8. 理解Cookie和Session机制

    转载: 理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录 ...

  9. Cookie/Session机制具体解释

    会话(Session)跟踪是Web程序中经常使用的技术,用来跟踪用户的整个会话.经常使用的会话跟踪技术是Cookie与Session.Cookie通过在client记录信息确定用户身份,Session ...

随机推荐

  1. [转载]mysql下载安装

    转自https://www.cnblogs.com/tyhj-zxp/p/6693046.html 下载 打开:https://www.mysql.com/downloads/ 1.点击该项:

  2. 从咖啡馆的经营看 Web 应用的扩展

    我经营着一家咖啡馆.经营成本同所用的资源成正比. 我的咖啡馆店面大概有一百平方英尺(约九平方米),雇佣了一个咖啡师,一台咖啡机. 营业能力: 每次能够服务一个顾客,用三分钟泡制一杯咖啡,算下来服务一个 ...

  3. 希尔密码(Hill Cipher)的实现

    原理应该不用多讲了,自己百度就可以. C++实现: #include <iostream> #include <string> #include <memory.h> ...

  4. [hadoop]hadoop api 新版本与旧版本的差别

    突然现在对以后的职业方向有些迷茫,不知道去干什么,现在有一些语言基础,相对而言好的一些有Java和C,选来选去不知道该选择哪个方向,爬了好多网页后,觉得自己应该从java开始出发,之前有点心不在焉,不 ...

  5. 修改elasticsearch5,搜索结果最大10000

    一:在Linux服务器中执行如下命令(开启es服务) curl -XPUT http://服务器ip:9200/索引名称/_settings -d '{ "index" : { & ...

  6. 基本控件文档-UISegment属性

    CHENYILONG Blog 基本控件文档-UISegment属性 Fullscreen   UISegment属性技术博客http://www.cnblogs.com/ChenYilong/ 新浪 ...

  7. EF记录统一添加创建,修改时间

    public class BaseEntity { public DateTime? DateCreated { get; set; } public string UserCreated { get ...

  8. 2017ACM暑期多校联合训练 - Team 9 1010 HDU 6170 Two strings (dp)

    题目链接 Problem Description Giving two strings and you should judge if they are matched. The first stri ...

  9. Spring4笔记1--Spring概述、IoC

    Spring概述: Spring框架: Spring 由 20 多个模块组成,它们可以分为数据访问/集成(Data Access/Integration).Web.面向切面编程(AOP,  Aspec ...

  10. 【逆向知识】PE ASLR

    1.知识点 微软从windows vista/windows server 2008(kernel version 6.0)开始采用ASLR技术,主要目的是为了防止缓冲区溢出 ASLR技术会使PE文件 ...