位置: 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虚拟环境路径)

  • 苹果手机发短信怎么选择卡1卡2(苹果手机发短信怎么切换主副卡)

    苹果手机发短信怎么选择卡1卡2(苹果手机发短信怎么切换主副卡)

  • 苹果13怎么切换主副卡(苹果13怎么切换卡1卡2)

    苹果13怎么切换主副卡(苹果13怎么切换卡1卡2)

  • oppo手机怎么用OTG传歌到mp3(oppo手机怎么用OTG传歌到mp4)

    oppo手机怎么用OTG传歌到mp3(oppo手机怎么用OTG传歌到mp4)

  • OPPO手机怎么设置儿童使用时间(oppo手机怎么设置锁屏密码)

    OPPO手机怎么设置儿童使用时间(oppo手机怎么设置锁屏密码)

  • 魅族手机hd是什么意思(魅族手机上有个hd怎么关掉)

    魅族手机hd是什么意思(魅族手机上有个hd怎么关掉)

  • 剪辑师暂停录制的快捷键是什么(剪辑师显示录制失败让关闭音频是怎么回事)

    剪辑师暂停录制的快捷键是什么(剪辑师显示录制失败让关闭音频是怎么回事)

  • 手机卡突然无法使用(手机卡突然无法接打电话)

    手机卡突然无法使用(手机卡突然无法接打电话)

  • 美图秀秀总是显示没有网络(美图秀秀为什么)

    美图秀秀总是显示没有网络(美图秀秀为什么)

  • 斗鱼TV不能投屏(斗鱼tv不能投屏 找不到当前wifi)

    斗鱼TV不能投屏(斗鱼tv不能投屏 找不到当前wifi)

  • 电脑播放不了视频怎么办(电脑播放不了视频 耳机也没声音)

    电脑播放不了视频怎么办(电脑播放不了视频 耳机也没声音)

  • 闲鱼如何隐藏来过时间(闲鱼如何隐藏来过)

    闲鱼如何隐藏来过时间(闲鱼如何隐藏来过)

  • 手机充电格变黄是什么原因(手机充电格变黄色怎么办)

    手机充电格变黄是什么原因(手机充电格变黄色怎么办)

  • word四个直角为什么显示一半(word四个直角怎么调整位置)

    word四个直角为什么显示一半(word四个直角怎么调整位置)

  • u盘当pe后怎么还原(u盘做pe盘后还能存东西吗)

    u盘当pe后怎么还原(u盘做pe盘后还能存东西吗)

  • 陌陌被卸载重新安装后消息记录会没有吗(陌陌被卸载重新登陆)

    陌陌被卸载重新安装后消息记录会没有吗(陌陌被卸载重新登陆)

  • 怎么p30pro拍照那么模糊(p30pro p30拍照)

    怎么p30pro拍照那么模糊(p30pro p30拍照)

  • 卡贴机打电话呼叫失败(卡贴机打电话呼叫很久)

    卡贴机打电话呼叫失败(卡贴机打电话呼叫很久)

  • ps通道的作用

    ps通道的作用

  • qq礼物不领取会退回吗(如果qq礼物不领,会被退回吗?)

    qq礼物不领取会退回吗(如果qq礼物不领,会被退回吗?)

  • 苹果诊断信息怎么看(iphone诊断信息)

    苹果诊断信息怎么看(iphone诊断信息)

  • 华为后台标准进程是几个

    华为后台标准进程是几个

  • 为什么搜索手机号找不到微信(为什么搜索手机号搜不到微信)

    为什么搜索手机号找不到微信(为什么搜索手机号搜不到微信)

  • 呼叫等待如何设置(呼叫等待呼叫保持怎么设置)

    呼叫等待如何设置(呼叫等待呼叫保持怎么设置)

  • 怎么进行win7在线重装系统?(win7怎么运行在哪里设置)

    怎么进行win7在线重装系统?(win7怎么运行在哪里设置)

  • vue 同局域网访问不到的问题及解决

    vue 同局域网访问不到的问题及解决

  • 个人所得税申报截止时间
  • 开具红字专用发票的条件
  • 餐饮业购买的油类有哪些
  • 实收资本可以做借方吗
  • 企业注销企业所得税年报怎么申报
  • 个人与公司交的税怎么算
  • 工商年报最迟什么时候申报
  • 银行开户登记号在哪看
  • 机票抵进项税税率
  • 增值税发票可以抵扣多少
  • 购原材料红字发票会计分录怎么写?
  • 外购技术服务费包括哪些
  • 进项票异常如何自查
  • 固定资产进项税额怎么抵扣
  • 购入固定资产税费怎么算
  • 固定资产一次性计入费用的账务处理
  • 非同一控制企业合并商誉
  • 成本费用调整法
  • 混合销售行为的名词解释
  • win10虚拟机安装win7
  • 禁止局域网用户访问权限
  • 怎么更改mac
  • 如何进行网速测试设置
  • 材料按计划成本计价下,外购材料结算
  • 上年度多计提的工资
  • win11如何添加快捷方式
  • 本期用于购建不动产的扣税凭证怎么填
  • 购货方收到红字发票要认证吗
  • win7系统配置服务哪些启用
  • 安装win7提示版本过低
  • 固定资产一次性加速折旧
  • 软件入无形资产还是长期待摊费用了
  • 矿业财务好做吗
  • cvpr2020结果
  • php中自定义常量的函数是
  • html无刷新跳转
  • 长期股权投资资本化
  • 结转应付职工薪酬会计科目
  • 固定资产清理主要核算什么
  • 薄雾笼罩怎么写
  • 采购折让分录
  • 旅行社开的发票怎么记账?
  • vuepress plugin
  • 长期待摊费用装修款如何摊销
  • 福利费计入科目
  • 预付卡销售和充值计入什么费用
  • 报表里主营业务怎么填
  • php.ini上传限制
  • 农产品增值税免税备案资料
  • 暂估应付款怎么录入
  • 进项税计税依据
  • 出售其他债权投资产生的收益为什么计入留存收益
  • 期初库存和期末库存可以修改吗
  • 个人所得税汇算清缴
  • mysql同步复制搭建方法指南详细步骤
  • 怎么计算利润的百分比
  • 小规模教育培训怎样纳税
  • 增值税销项税额属于什么科目
  • 长期待摊费用摊销是当月还是下月
  • 高速公路通行费抵扣税率
  • 商业汇票怎么算到期日
  • 百分百控股的企业
  • 现金流量表的编制基础是权责发生制
  • 分公司人数要求
  • 企业增资的流程
  • 新税法和新准则的关系
  • 重新组织是什么意思
  • win7 bug
  • win2003安装
  • win8.1iso
  • 微软推送windows 11
  • linux中遇到的问题
  • make:arm-linux- conmand not found错误处理探讨
  • win7系统重装后蓝屏
  • perl sub
  • java的gui框架
  • 适配是什么
  • 安徽省合肥市地震多少级
  • 甘肃华能能源开发有限公司
  • 德州市国土自然资源局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设