大部分购物网站都会实现购物车的功能,基于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对象实现简单的购物车应用的更多相关文章

  1. 初识 Asp.Net内置对象之Session对象

    Session对象 Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法相互访问.Session对象中止联机机器离现时,,也就是当网站使 ...

  2. ASP.NET 使用application和session对象写的简单聊天室程序

    ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览 ...

  3. 基于django的自定义简单session功能

    基于django的自定义简单session功能 简单思路: 1.建立自定义session数据库 2.登入时将用户名和密码存入session库 3.将自定义的随机session_id写入cookie中 ...

  4. 2017.9.28 web设计简单的购物车应用案例--session的简单应用

    该购物过程是在session范围内完成的,需要使用session对象实现信息的共享 (1)购买“肉类”商品的页面 <%@ page language="java" impor ...

  5. Session小案例-----简单购物车的使用

    Session小案例-----简单购物车的使用 同上篇一样,这里的处理请求和页面显示相同用的都是servlet. 功能实现例如以下: 1,显示站点的全部商品 2.用户点击购买后,可以记住用户选择的商品 ...

  6. 转发,重定向以及区别和简单的session对象

    1.转发     作用:在多个页面交互过程中实现请求数据的共享.     过程:Web服务器内部将一个request请求的处理权交给另外一个资源,属于同一个访问请求和响应过程,所以request对象的 ...

  7. 理解会话中的Cookie和Session对象

    会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 在java语言中,Servlet程序是由WEB服务器调用,web服务器收到客 ...

  8. 使用MongoDB和JSP实现一个简单的购物车系统

    目录 1 问题描述  2 解决方案  2.1  实现功能  2.2  最终运行效果图  2.3  系统功能框架示意图  2.4  有关MongoDB简介及系统环境配置  2.5  核心功能代码讲解  ...

  9. 利用JSP编程技术实现一个简单的购物车程序

    实验二   JSP编程 一.实验目的1. 掌握JSP指令的使用方法:2. 掌握JSP动作的使用方法:3. 掌握JSP内置对象的使用方法:4. 掌握JavaBean的编程技术及使用方法:5. 掌握JSP ...

随机推荐

  1. npm audit fix 报错

    found 2504 vulnerabilities (1360 low, 1109 moderate, 29 high, 6 critical)  run `npm audit fix` to fi ...

  2. 0418部分HomeWork案例

    /* 月份 输入月份,对应返回该月份的天数 利用switch的穿透性,可将多个case合到一个代码块 */ import java.util.Scanner; class HomeWork5{ pub ...

  3. JVM调优总结(七)-调优方法

    JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...

  4. 需求:一个页面中需要用到多个字典数据。用于下拉选项,同时,需要将其保存为json格式。以便于key,value的相互转换。记录在实现过程中踩的坑

    本文涉及到的知识: Promise,all()的使用 js处理机制 reduce的用法 map的用法 同步异步 需求: 一个页面中需要用到多个字典数据.用于下拉选项,同时,需要将其保存为json格式. ...

  5. 题解 P4071 【[SDOI2016]排列计数】 (费马小定理求组合数 + 错排问题)

    luogu题目传送门! luogu博客通道! 这题要用到错排,先理解一下什么是错排: 问题:有一个数集A,里面有n个元素 a[i].求,如果将其打乱,有多少种方法使得所有第原来的i个数a[i]不在原来 ...

  6. Typora 使用 Markdown 嵌入 LaTeX 数学公式符号语法

    博客园不支持渲染 LaTeX 数学公式,需要用到什么公式,请复制到您所用的支持 LaTeX 的编辑器中查看实现效果.Typora 可以渲染 LaTeX 数学公式. 目录 行内与独行 行内公式 独行公式 ...

  7. SpringMVC(三)Restful风格及实例、参数的转换

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Restful风格 1.Restful风格的介绍 Restful 一种软件架构风格.设计风格,而不是 ...

  8. Spring Cloud 系列之 Apollo 配置中心(三)

    本篇文章为系列文章,未读前几集的同学请猛戳这里: Spring Cloud 系列之 Apollo 配置中心(一) Spring Cloud 系列之 Apollo 配置中心(二) 本篇文章讲解 Apol ...

  9. Java实现十六进制转十进制

    基础练习 十六进制转十进制 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进 ...

  10. Java实现 蓝桥杯 算法训练 字串统计

    算法训练 字串统计 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最 ...