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

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1. 简易session版购物车:创建一个简单的购物车模型,由三个 jsp 和两个 Servlet 组成:

checkbox 是一组的话 name必须一致

代码:

  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>step-1.jsp</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>Struts</td>
<td><input type="checkbox" name="book" value="Struts"/></td>
</tr> <tr>
<td colspan="2" >
<input align="center" type="submit" value="Submit"/>
</td> </tr> </table>
</form> </body>
</html>

        

  2)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>Step-2.jsp</title>
</head>
<body>
<form action="<%= request.getContextPath() %>/processStep2" method="post">
<h4>step2: 请输入寄送的地址和信用卡信息</h4>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<td colspan="2" align="center">寄送信息</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" align="center">信用卡信息</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 align="center" type="submit" value="Submit"/></td>
</tr>
</table>
</form>
</body>
</html>

      

  3)confim.jsp

 <%@page import="com.jason.shoopingcart.bean.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");
%>
<table border="1" cellpadding="10" cellspacing="0">
<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>买的书:</td>
<td>
<%
for(String book : books ){
out.print(book);
out.print("<br>");
}
%>
</td>
</tr>
</table> </body>
</html>

  

  4)ProcessStep1Servlet.java

  1 package com.jason.shoopingcart.servlet;
2
3 import java.io.IOException;
4 import javax.servlet.ServletException;
5 import javax.servlet.annotation.WebServlet;
6 import javax.servlet.http.HttpServlet;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9
10 /**
11 * Servlet implementation class ProcessStep1Servlet
12 */
13 @WebServlet("/processStep1")
14 public class ProcessStep1Servlet extends HttpServlet {
15 private static final long serialVersionUID = 1L;
16
17
18 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
19
20 //1.获取选中的图书的信息
21 String[] books = request.getParameterValues("book");
22
23 //2.把图书信息放入到HttpSession 中
24 request.getSession().setAttribute("books", books);
25
26 //3.重定向到shoppingcart/step-2.jsp
27 response.sendRedirect(request.getContextPath() + "/shoppingcart/step-2.jsp");
28
29 }
30
31 }

  

  5)ProcessStep2Servlet.java

 1 package com.jason.shoopingcart.servlet;
2
3 import java.io.IOException;
4
5 import javax.servlet.ServletException;
6 import javax.servlet.annotation.WebServlet;
7 import javax.servlet.http.HttpServlet;
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10 import javax.servlet.http.HttpSession;
11
12 import com.jason.shoopingcart.bean.Customer;
13
14 /**
15 * Servlet implementation class ProcessStep2Servlet
16 */
17 @WebServlet("/processStep2")
18 public class ProcessStep2Servlet extends HttpServlet {
19 private static final long serialVersionUID = 1L;
20
21
22 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
23 //1. 获取请求参数 name ,address ,cardType,card
24 request.setCharacterEncoding("UTF-8");
25 String name = request.getParameter("name");
26 String address = request.getParameter("address");
27 String cardType = request.getParameter("cardType");
28 String card = request.getParameter("card");
29
30 Customer customer = new Customer(name, address, cardType, card);
31
32 //2.把请求存储到Httpsession中
33 HttpSession session = request.getSession();
34 session.setAttribute("customer", customer);
35
36 //3.重定向到confirm.jsp
37 response.sendRedirect(request.getContextPath() + "/shoppingcart/confirm.jsp");
38 }
39
40 }

   

  6)Customer.java

 package com.jason.shoopingcart.bean;

 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 void setCard(String card) {
this.card = card;
}
public String getCard() {
return card;
} public Customer(String name, String address, String cardType, String card) {
super();
this.name = name;
this.address = address;
this.cardType = cardType;
this.card = card;
} public Customer() {
super();
} }

[原创]java WEB学习笔记33:Session 案例 之 购物车的更多相关文章

  1. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

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

  5. [原创]java WEB学习笔记34:Session 案例 之 解决表单重复提交

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

  6. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

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

  7. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

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

  8. [原创]java WEB学习笔记31:会话与状态管理 session机制 概述(定义,session机制,session的声明周期,保存session的方式,Session的创建与删除)

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

  9. [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发

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

随机推荐

  1. Linux如何查看进程、杀死进程、查看端口等常用命令

    查看进程号 1.ps 命令用于查看当前正在运行的进程.grep 是搜索 例如: ps -ef | grep java表示查看所有进程里 CMD 是 java 的进程信息2.ps -aux | grep ...

  2. 下拉刷新Listview(8.30)

    Android-PullToRefresh 1项目托管地址: https://github.com/bavariama1/Android-PullToRefresh 2 快速开始教程:https:// ...

  3. C----------输入一组整数,求出这组数字子序列和中的最大值,只要求出最大子序列的和,不必求出最大值对应的序列。

    © 版权声明:本文为博主原创文章,转载请注明出处 代码: #include <stdio.h> #include <stdlib.h> #define GET_ARRAY_LE ...

  4. Google 商店

    Google 商店地址:https://store.google.com/

  5. 《大话操作系统——做坚实的project实践派》(4)

     操作系统内核必需要关注一个详细硬件平台的设备 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1ub3M=/font/5a6L5L2T/fontsi ...

  6. Webpack与Gulp、Grunt区别

    Webpack与Gulp.Grunt没有什么可比性,它可以看作模块打包机,通过分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等 ...

  7. Debian NAT共享上网

    如果Linux主机有两个网卡,比如一个有线.一个无线,当无线连接后,其他机器即可通过有线共享上网,为了方便叙述,假设环境如下: A机器有两块网卡,eth0和ws0,其中ws0为无线网卡,已连接wifi ...

  8. [WebGL入门]二十五,点光源的光照

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明.我会加上[lufy:].另外,鄙人webgl研究还不够深入,一些专业词语.假设翻译有误,欢迎大家指 ...

  9. x264源代码学习1:概述与架构分析

    函数背景色 函数在图中以方框的形式表现出来.不同的背景色标志了该函数不同的作用: 白色背景的函数:不加区分的普通内部函数. 浅红背景的函数:libx264类库的接口函数(API). 粉红色背景函数:滤 ...

  10. 微信小程序的文件结构 —— 微信小程序教程系列(1)

    所有文章均是CSDN博客所看,已按照作者要求,注明出处了,感谢作者的整理! 博客文章地址:http://blog.csdn.net/michael_ouyang/article/details/548 ...