基于session对象实现简单的购物车应用
大部分购物网站都会实现购物车的功能,基于session对象的购物车应用可以实现一个用户会话有效期内,用户所选多个商品的存储。
为了实现这样的功能需要编写三个JSP页面,分别是login.jsp、main.jsp和shoppingCart.jsp,login.jsp页面提供一个表单,要求用户输入用户名称,表单提交给主页面main.jsp。具体如下:
Login.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>网上购物登陆界面</title>
</head>
<body bgcolor="CCCFFF">
<form action="main.jsp" method="get">
<table>
<tr>
<td>输入用户名:</td>
<td><input type="text" name="UserName" size="16"></td>
</tr>
<tr>
<td>输入密码:</td>
<td><input type="password" name="password" size="16"></td>
</tr>
<tr>
<td><input type="submit" value="登录"></td>
</tr>
</table>
</form>
</body>
</html>
没有什么好说的,就是一个简单的登录界面,其中登录请求提交到main.jsp界面,运行情况如下图所示:

main.jsp界面代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>网上购物主界面</title>
</head>
<body bgcolor="CCCFFF">
<%
request.setCharacterEncoding("UTF-8");
String c=request.getParameter("UserName");
String d=request.getParameter("password");
String a=(String)session.getAttribute("UserName1");
if(a==null){
if(c.equals("???")&&d.equals("???")){
if(a==null){
String b=request.getParameter("UserName");
if(b==null){
response.sendRedirect("bookShopLogin.jsp");
}
else{
session.setAttribute("UserName1",b);
out.println(b+"! 欢迎您来到主界面,请选择您要购买的商品:");
}
}
else{
out.println(a+"! 欢迎您来到主界面,请选择您要购买的商品:");
}
}
else
response.sendRedirect("bookShopLogin.jsp");
}
else
out.println(a+"! 欢迎您来到主界面,请选择您要购买的商品:");
%>
<form action="shoppingCart.jsp" method="post">
<p>商品信息</p>
<table border="1">
<tr>
<td><input type="checkbox" name="choice" value="U盘"></td>
<td>U盘</td>
</tr>
<tr>
<td><input type="checkbox" name="choice" value="移动硬盘"></td>
<td>移动硬盘</td>
</tr>
<tr>
<td><input type="checkbox" name="choice" value="鼠标"></td>
<td>鼠标</td>
</tr>
<tr>
<td><input type="checkbox" name="choice" value="键盘"></td>
<td>键盘</td>
</tr>
</table>
<input type="submit" value="加入购物车">
</form>
</body>
</html>
之里面有一条输出语句是没有意义的,因为对运行不会产生任何影响,因此我懒的去删了,可以看出main界面收到请求后,对用户输入的密码和用户名进行验证,具体用户名和密码我不写了,可以自己修改,即带?的那一串,然后用form表单创建一个简单的购物界面,选好想要购买的物品后,点击加入购物车按钮,将请求提交到shoppingCart.jsp界面
利用session对象的getAttribute方法获取用户名,并将其输出,图中用户名已做马赛克处理

shoppingCart.jsp界面代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>购物车界面</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String username=(String)session.getAttribute("UserName1");
Vector b=(Vector)session.getAttribute("bookShop");
if(b==null)
b=new Vector();
String[] g=request.getParameterValues("choice");
if(g!=null){
for(int i=0;i<g.length;i++)
b.add(g[i]);
}
session.setAttribute("bookShop",b);
out.println("<br>您的姓名:"+username);
out.println("<br>购物车中的商品:<br>");
for(int j=0;j<b.size();j++)
out.println(b.get(j)+"<br>");
%>
<p><a href="bookShopLoginCheck.jsp">返回主界面继续购物</a></p>
</body>
</html>
最后运行结果如下图,当然如果顾客还想继续选购商品时,可以通过点击“返回主界面继续购物”来返回购物界面

基于session对象实现简单的购物车应用的更多相关文章
- 初识 Asp.Net内置对象之Session对象
Session对象 Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法相互访问.Session对象中止联机机器离现时,,也就是当网站使 ...
- ASP.NET 使用application和session对象写的简单聊天室程序
ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...
- 基于django的自定义简单session功能
基于django的自定义简单session功能 简单思路: 1.建立自定义session数据库 2.登入时将用户名和密码存入session库 3.将自定义的随机session_id写入cookie中 ...
- 2017.9.28 web设计简单的购物车应用案例--session的简单应用
该购物过程是在session范围内完成的,需要使用session对象实现信息的共享 (1)购买“肉类”商品的页面 <%@ page language="java" impor ...
- Session小案例-----简单购物车的使用
Session小案例-----简单购物车的使用 同上篇一样,这里的处理请求和页面显示相同用的都是servlet. 功能实现例如以下: 1,显示站点的全部商品 2.用户点击购买后,可以记住用户选择的商品 ...
- 转发,重定向以及区别和简单的session对象
1.转发 作用:在多个页面交互过程中实现请求数据的共享. 过程:Web服务器内部将一个request请求的处理权交给另外一个资源,属于同一个访问请求和响应过程,所以request对象的 ...
- 理解会话中的Cookie和Session对象
会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 在java语言中,Servlet程序是由WEB服务器调用,web服务器收到客 ...
- 使用MongoDB和JSP实现一个简单的购物车系统
目录 1 问题描述 2 解决方案 2.1 实现功能 2.2 最终运行效果图 2.3 系统功能框架示意图 2.4 有关MongoDB简介及系统环境配置 2.5 核心功能代码讲解 ...
- 利用JSP编程技术实现一个简单的购物车程序
实验二 JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...
随机推荐
- .Net基础之1——学前入门
1..Net平台 2.C#编程语言 3..Net都能做什么 Winform桌面应用程序.Internet应用程序——ASP.Net(京东.淘宝.携程网)(主推). WP8手机开发.Unity 3D游戏 ...
- 【JAVA习题七】输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
package erase; import java.util.Scanner; public class 字符串分类 { public static void main(String[] args) ...
- Sping源码+Redis+Nginx+MySQL等七篇实战技术文档,阿里大佬推荐
JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. 引入 ...
- CSS 风车(花瓣)旋转动画圆角
这是一个综合的案例,用到了transition(动画,动作在单位时间内完成),transform(旋转),border-radius(圆角),absolute(定位),linear-gradient( ...
- Rocket - debug - TLDebugModuleInner - COMMAND
https://mp.weixin.qq.com/s/Lz_D43YdhbRhiGiyoCBxDg 简单介绍TLDebugModuleInner中COMMAND寄存器的实现. 1. COMMANDRe ...
- Chisel3 - Wire & Reg
https://mp.weixin.qq.com/s/Y26N5P4XOr5e3uyi5XQY-w 不同于Verilog,Chisel中Wire和Reg并不是数据类型,而是数据容器,作为数据的一个 ...
- Java实现蓝桥杯模拟组织晚会
问题描述 小明要组织一台晚会,总共准备了 n 个节目.然后晚会的时间有限,他只能最终选择其中的 m 个节目. 这 n 个节目是按照小明设想的顺序给定的,顺序不能改变. 小明发现,观众对于晚上的喜欢程度 ...
- JavaScript实现html购物车代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java实现 LeetCode 32 最长有效括号
32. 最长有效括号 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 示例 1: 输入: "(()" 输出: 2 解释: 最长有效括号子串为 & ...
- java实现Playfair 密码
一种 Playfair 密码变种加密方法如下:首先选择一个密钥单词(称为 pair)(字母不重复,且都为小写字母), 然后与字母表中其他字母一起填入至一个 5x5 的方阵中,填入方法如下: 1.首先按 ...