位置: IT常识 - 正文

使用Session和cookie会话对象实现简单购物车功能(超详细)(使用session的步骤)

编辑:rootadmin
使用Session和cookie会话对象实现简单购物车功能(超详细) 一、新建项目、实体类、servlet

推荐整理分享使用Session和cookie会话对象实现简单购物车功能(超详细)(使用session的步骤),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:session的使用情景,使用session和cookie是如何进行会话控制的?,session和cookie的使用场景,session和cookie的使用场景,使用session和cookie是如何进行会话控制的?,使用session和不使用session的区别,使用session和cookie会话对象实现简易购物车功能,使用session和不使用session的区别,内容如对您有帮助,希望把文章链接给更多的朋友!

1.新建Dynamic Web project,新建过程如下; 2.在src目录下新建两个包,一个命名为entity,一个命名为servlet,新建过程如下; 3.在entity目录下新建两个实体类,一个名为Cake,一个名为CakeDB,新建过程如下: 4.在servlet目录下新建三个servlet,命名分别为ListCakeServlet、PurchaseServlet和CartServlet,新建过程如下: 所有东西建完后结果如图:

二:源代码

1.Cake实体类:

package entity;public class Cake {private String id;private String name;public Cake() {}public Cake(String id, String name) {this.id = id;this.name = name;}public void setId(String id) {this.id=id;}public String getId() {return id;}public void setName(String name) {this.name=name;}public String getName() {return name;}}使用Session和cookie会话对象实现简单购物车功能(超详细)(使用session的步骤)

2.CakeDB实体类:

package entity;import java.util.Collection;import java.util.LinkedHashMap;import java.util.Map;public class CakeDB {private static Map<String, Cake> cake = new LinkedHashMap<String, Cake>(); static {//模拟数据库中的记录 cake.put("1001", new Cake("1001", "A类:巧克力蛋糕")); cake.put("1002", new Cake("1002", "B类:水果沙拉蛋糕")); cake.put("1003", new Cake("1003", "C类:慕斯蛋糕")); cake.put("1004", new Cake("1004", "D类:奶油蛋糕")); cake.put("1005", new Cake("1005", "E类:干果蛋糕")); } // 获得所有的蛋糕 public static Collection<Cake> getAll() { return cake.values(); } // 根据指定的id获蛋糕 public static Cake getCake(String id) { return cake.get(id); }}

3.ListCakeServlet:

package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Collection;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import entity.Cake;import entity.CakeDB;@WebServlet("/ListCakeServlet")public class ListCakeServlet extends HttpServlet {private static final long serialVersionUID = 1L; public ListCakeServlet() { super(); }protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); Collection<Cake> cakes = CakeDB.getAll(); out.write("本站提供的蛋糕有:<br>"); for (Cake cake : cakes) { String url = "PurchaseServlet?id=" + cake.getId(); out.write(cake.getName() + "<a href='" + url + "'>点击购买</a><br>"); }}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}

4.PurchaseServlet:

package servlet;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import entity.Cake;import entity.CakeDB;@WebServlet("/PurchaseServlet")public class PurchaseServlet extends HttpServlet {private static final long serialVersionUID = 1L; public PurchaseServlet() { super(); }protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获得用户购买的商品 String id = req.getParameter("id"); if (id == null) { // 如果id为null,重定向到ListBookServlet页面 String url = "ListBookServlet"; resp.sendRedirect(url); return; } Cake book = CakeDB.getCake(id); // 创建或者获得用户的Session对象 HttpSession session = req.getSession(); // 从Session对象中获得用户的购物车 List<Cake> cart = (List) session.getAttribute("cart"); if (cart == null) { // 首次购买,为用户创建一个购物车(List集合模拟购物车) cart = new ArrayList<Cake>(); // 将购物城存入Session对象 session.setAttribute("cart", cart); } // 将商品放入购物车 cart.add(book); // 创建Cookie存放Session的标识号 Cookie cookie = new Cookie("JSESSIONID", session.getId()); cookie.setMaxAge(60 * 30); cookie.setPath("/Servlet"); resp.addCookie(cookie); // 重定向到购物车页面 String url = "CartServlet"; resp.sendRedirect(url);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}

5.CartServlet:

package servlet;import entity.Cake;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;import java.util.List;@WebServlet("/CartServlet")public class CartServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); List<Cake> cart = null; boolean purFlag = true; HttpSession session = req.getSession(false); if (session == null) { purFlag =false; } else { cart = (List) session.getAttribute("cart"); if (cart == null){ purFlag=false; } } if(!purFlag){ out.write("抱歉,您还没有购买任何商品!<br>"); } else { out.write("您购买的蛋糕有:<br>"); double price = 0; for (Cake cake:cart){ out.write(cake.getName() +"<br>"); } } }}三、运行

1.在ListCakeServlet文件下运行,点击鼠标右键,选择run as,具体如图: 2.运行结果如图: 点击购买之后跳转CartServlet页面,比如我点了巧克力蛋糕后:

以上就是使用Session和cookie会话对象实现简单购物车功能。希望对你有帮助哦~

本文链接地址:https://www.jiuchutong.com/zhishi/297669.html 转载请保留说明!

上一篇:VUE2安装初始化步骤(2022)(vue初始化命令)

下一篇:Anconda虚拟环境创建及pytorch的安装步骤(anconda虚拟环境路径)

  • 苹果手机ios在哪里打开(苹果手机ios在哪里关闭收费)

    苹果手机ios在哪里打开(苹果手机ios在哪里关闭收费)

  • supportassist os recovery是什么意思

    supportassist os recovery是什么意思

  • 全民k歌听不到自己唱(全民K歌听不到伴奏)

    全民k歌听不到自己唱(全民K歌听不到伴奏)

  • 用于设置页面元信息的是(用于设置页面元信息的标记是)

    用于设置页面元信息的是(用于设置页面元信息的标记是)

  • 手机充电器头坏了怎么修复(手机充电器头坏了一般是哪的毛病)

    手机充电器头坏了怎么修复(手机充电器头坏了一般是哪的毛病)

  • 饿了么为什么不能用微信支付(饿了么为什么不能在线联系骑手)

    饿了么为什么不能用微信支付(饿了么为什么不能在线联系骑手)

  • ios13.4.1怎么分屏(苹果手机ios13怎么分屏)

    ios13.4.1怎么分屏(苹果手机ios13怎么分屏)

  • 为什么手机视频没声音(为什么手机视频黑屏)

    为什么手机视频没声音(为什么手机视频黑屏)

  • 打电话说关机怎么回事(打电话说关机怎么搞)

    打电话说关机怎么回事(打电话说关机怎么搞)

  • 钉钉直播可以不露脸吗(钉钉直播可以不用耳机吗)

    钉钉直播可以不露脸吗(钉钉直播可以不用耳机吗)

  • wifi下载速度慢怎么解决(苹果wifi下载速度慢)

    wifi下载速度慢怎么解决(苹果wifi下载速度慢)

  • 微型计算机的特点(微型计算机的特点和计算机的特点是一样的吗)

    微型计算机的特点(微型计算机的特点和计算机的特点是一样的吗)

  • hp打印机硒鼓型号(hp 原装硒鼓)

    hp打印机硒鼓型号(hp 原装硒鼓)

  • 苹果手机怎么取消拦截电话(苹果手机怎么取消密码锁屏)

    苹果手机怎么取消拦截电话(苹果手机怎么取消密码锁屏)

  • 拼多多怎么退货给卖家(拼多多怎么退货不退东西)

    拼多多怎么退货给卖家(拼多多怎么退货不退东西)

  • 快手怎么举报主播(快手怎么举报主播,能让主播炒作辱骂他人)

    快手怎么举报主播(快手怎么举报主播,能让主播炒作辱骂他人)

  • 中国数据中心在哪里(中国数据中心建设情况)

    中国数据中心在哪里(中国数据中心建设情况)

  • 华为nove5的耳机入口在哪里(华为nova5i的耳机)

    华为nove5的耳机入口在哪里(华为nova5i的耳机)

  • 华为mate30支持红外遥控吗(华为mate30支持红外吗)

    华为mate30支持红外遥控吗(华为mate30支持红外吗)

  • 小米8怎么设置来电秀(小米8怎么设置指纹解锁)

    小米8怎么设置来电秀(小米8怎么设置指纹解锁)

  • 苹果11是不是双卡(苹果11是不是双槽)

    苹果11是不是双卡(苹果11是不是双槽)

  • 如何打印微信聊天记录(如何打印微信聊天长图)

    如何打印微信聊天记录(如何打印微信聊天长图)

  • airpods怎么找其中一只(airpods 怎么找耳机)

    airpods怎么找其中一只(airpods 怎么找耳机)

  • 硬盘连同驱动器是一种什么存储器(软盘驱动器)

    硬盘连同驱动器是一种什么存储器(软盘驱动器)

  • 全民k歌移除粉丝对方知道吗(全民k歌移除粉丝和拉黑是一样吗)

    全民k歌移除粉丝对方知道吗(全民k歌移除粉丝和拉黑是一样吗)

  • 艾琳多南堡,苏格兰 (© CBW/Alamy)(wnba艾琳娜多恩)

    艾琳多南堡,苏格兰 (© CBW/Alamy)(wnba艾琳娜多恩)

  • 小规模纳税人每月不超过10万
  • 编制支出加工费的会计分录
  • 未达起征点的增值税怎么做账
  • 餐饮业可以开增值税专用发票吗?
  • 主营业务收入为什么记贷方
  • 申报个人所得税会计分录
  • 上月未记账本月可以记账吗
  • 煤炭企业会计核算办法
  • 施工安全协议违约怎么办
  • 流动资产短期借款
  • 购进的材料没有发票可以入库吗?
  • 不续约赔偿金要交税吗
  • 从银行取现回单怎么取
  • 销售不同税率的货物会计处理
  • 错把费用计入固定资产次月如何调账
  • 购买电脑的方案
  • 三个月工资一次扣税多少
  • 注销时公司账上没有钱付股东投资款
  • 建筑安装企业成本费用包括哪些
  • 2018年车船税收费标准
  • 2018年企业所得税政策变化
  • 公司向个人借款利率最高多少
  • 广告设计制作的技术框架
  • 个税缴纳累计是每年一算吗
  • 将自产产品无偿赠送 会计处理
  • 公司绿化购买的苗木如何进行账务处理?
  • 非营利性组织有
  • 单独出售的包装物是否属于包装物的核算范围
  • 普票没有税号可以开票吗
  • 如何开锅
  • 赠送客户产品账务处理
  • 厂房装修费用计入制造费用吗
  • 材料未到,货款尚未支付
  • linux zen3
  • php字符串函数有哪些
  • 购入研发设备
  • 购货折让会计分录
  • 工程竣工决算会计账务处理
  • 员工重复报销后如何处理
  • sass转化为css
  • 公司借款利息可以用对公户转账吗
  • less预处理器详解
  • php 访问数据库
  • 发票复核和收款人未填写
  • stm32f103教程
  • 前端程序员和后端程序员哪个工资高
  • python兑换美元
  • 购入固定资产的进项税额可以抵扣吗
  • 境外企业在境内投资是否备案
  • 电子发票报税怎么操作
  • 织梦如何使用
  • 资产负债表和利润表的区别
  • 母子公司之间借款要交税吗
  • sqlserver的replace
  • 一年内到期的非流动资产
  • 一般纳税人企业所得税税率多少
  • 全资子公司可以转让吗
  • 交易性金融资产公允价值变动怎么算
  • 金融服务银行
  • 科目余额表没有本年累计怎么办
  • 红冲发票金额大于原发票金额
  • 员工借款计入
  • 小企业建账流程图
  • 奖励罚款怎么做分录
  • mac如何设置启动系统
  • 如何让计算机自动关机
  • kworker进程如何解决
  • kill命令用法
  • WIN7系统的电脑怎么运行快
  • linux的安装方法
  • opengl实现光照效果
  • jquery代码实现鼠标点击
  • javascript如何
  • 安卓手机管家下载
  • 安卓 crash
  • 招聘退役士兵减刑政策
  • 每月个人所得税申报截止时间是几号
  • 税务金三系统什么意思?
  • 济宁高新区税务局办税大厅电话
  • 车船税代收有发票吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设