当前位置: 首页 > article >正文

jsp实现简易购物车

实现要求:
(a)输入要购买的商品
在这里插入图片描述
(b)点击提交按钮后
在这里插入图片描述
(c)结账页面将所选择的商品全部列出
在这里插入图片描述

代码实现:

b9_shopping.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="_b9_shopping_sent.jsp" method="post"><h2>请输入要购买的商品:<input type="text" name="book"><input type="submit" name="sent" value="提交"></h2>
</form></body>
</html>

_b9_shopping_sent.jsp:

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><style>span{color: red;}form{margin-left: 120px;}</style><%!ArrayList<String> list = new ArrayList<String>();	
%><%request.setCharacterEncoding("utf-8");String  book = request.getParameter("book");list.add(book);session.setAttribute("books", list);
%><h4>提示:您刚才选择了商品<span><%=book %></span>,请问,你还想做什么?<br></h4><form action="_b9_shopping_.jsp" method="post" style="float:left;"><input type="submit" value="继续购买" name="continue">			</form><form action="_b9_shopping_show.jsp" method="post"><input type="submit" value="结账" name="final">				</form></body>
</html>

说明:
这里使用了ArrayList集合,这是因为最终要求把所购买的所有的商品都输出来,所以有多个值
那为什么使用集合而不是用数组,因为集合长度可变,适合进行不断的添加

_b9_shopping_show.jsp:

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h2>非常感谢您的光临!您购买的商品有:</h2><br><%@SuppressWarnings("unchecked")//添加这个下面的ArrayList警告就会解除ArrayList<String> l = (ArrayList<String>)session.getAttribute("books");if(l!=null){for(int i = 0 ; i < l.size() ; i++){out.print("商品"+(i+1)+":"+l.get(i)+"<br>");}}
%></body>
</html>

注意:
对于上面的代码,有一个问题所在,就是当结账后,再次重新运行购买商品的时候,商品是在原本的基础上继续累加的

只需要将_b9_shopping_sent.jsp文件中的代码稍作修改即可:

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><style>span{color: red;}form{margin-left: 120px;}</style><%request.setCharacterEncoding("utf-8");String  book = request.getParameter("book");if(book != null && book.length()!=0){		@SuppressWarnings("unchecked")//添加这个下面的ArrayList警告就会解除ArrayList<String> list = (ArrayList<String>)session.getAttribute("books");if(list == null){//books还不存在的时候list = new ArrayList<String>();list.add(book);session.setAttribute("books", list);}else{list.add(book);session.setAttribute("books", list);}}else{//如果为空,让用户返回重新输入response.sendRedirect("_b9_shopping_.jsp");}
%><h4>提示:您刚才选择了商品<span><%=book %></span>,请问,你还想做什么?<br></h4><form action="_b9_shopping_.jsp" method="post" style="float:left;"><input type="submit" value="继续购买">		<!-- 跳转的时候可以在input框中直接加name="continue" οnclick="localtion.href='_b9_shopping_.jsp'"属性 -->	</form><form action="_b9_shopping_show.jsp" method="post"><input type="submit" value="结账" name="final">				</form></body>
</html>

_b9_shopping_show.jsp:也需要做一些修改

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h2>非常感谢您的光临!您购买的商品有:</h2><br><%@SuppressWarnings("unchecked")//添加这个下面的ArrayList警告就会解除ArrayList<String> l = (ArrayList<String>)session.getAttribute("books");if(l!=null){for(int i = 0 ; i < l.size() ; i++){out.print("商品"+(i+1)+":"+l.get(i)+"<br>");}session.setAttribute("books", null);}
%></body>
</html>

说明:
在原本的基础之上,又添加了if语句进行判断
当浏览器完全结束运行时,此时的session就已经结束了
所以,重新运行的时候,就不会再在原本的基础上就行累加

http://www.lryc.cn/news/2418704.html

相关文章:

  • 各职业抗火装出处
  • 【河北工业大学城市学院毕业论文】基于Java的连连看游戏的设计与实现
  • 如何打开和编程NH文件
  • DropDownList绑定的两种方法
  • QQ空间欢迎动画代码大全
  • PDP协议简介
  • Windows 7 RTM“新版本”7600.16399”释疑
  • Linux介绍与操作系统安装
  • MATLAB6.5安装后MATLAB 出现 license manager error 103错误
  • Bcrypt.NET开源项目使用手册
  • MDK5(KEIL5)设置输出bin文件
  • 免费打造个人博客系统
  • APE文件直接刻录CD
  • 8 款浏览器兼容性测试工具介绍
  • MPEG-4标准定义的音频压缩格式AAC详解
  • CocosCreator 源码cc.moveBy详解
  • xiao
  • 小黄的日记,爱情本该如此
  • 分享97个社区论坛PHP源码,总有一款适合你
  • java仿qq空间音乐播放_使用JS改造的简单网页音乐播放器,仿QQ空间样式
  • CSS - 实现横向滚动(横向滚动布局)
  • 分享12款我常用的开源免费工具
  • 海外CDN加速方式
  • libtorrent源码分析(三)BT下载相关知识总结
  • C# TreeView的两种绑定方法
  • 刀剑封魔录多功能修改器 v1.2使用教程
  • 解析CNKI帐号用户名、密码破解秘笈
  • android4.0怎么用微信,新开放接口 Android版微信4.0全新体验
  • cocos2d-x学习笔记-触屏事件详解
  • Red Hat Enterprise Linux ISO 全镜像各个版本下载,安装教程