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

  • 华为watch3pro怎么回复短信(华为watch3pro怎么关机)

    华为watch3pro怎么回复短信(华为watch3pro怎么关机)

  • 淘宝助理怎么上传数据包(淘宝助理怎么用)

    淘宝助理怎么上传数据包(淘宝助理怎么用)

  • 如何关闭QQ访客那个微视勋章(怎么样关闭qq访客)

    如何关闭QQ访客那个微视勋章(怎么样关闭qq访客)

  • 苹果8支持人脸识别吗(苹果支持人脸识别吗)

    苹果8支持人脸识别吗(苹果支持人脸识别吗)

  • ipadpro和电脑的区别(ipadpro2021和电脑的区别)

    ipadpro和电脑的区别(ipadpro2021和电脑的区别)

  • 微信公众号保存的文章在哪里(微信公众号保存图片会被知道吗)

    微信公众号保存的文章在哪里(微信公众号保存图片会被知道吗)

  • 抖音作品标题屏蔽了怎么回事(抖音作品标题怎么不见了)

    抖音作品标题屏蔽了怎么回事(抖音作品标题怎么不见了)

  • 5g模式nsa和sa的区别(5gsa和nsa哪个模式好)

    5g模式nsa和sa的区别(5gsa和nsa哪个模式好)

  • 抖音添加黄点是访客吗(抖音上黄点是每天都会出现的吗)

    抖音添加黄点是访客吗(抖音上黄点是每天都会出现的吗)

  • 荣耀20s支持红外吗(荣耀20s红外功能在设置哪里)

    荣耀20s支持红外吗(荣耀20s红外功能在设置哪里)

  • 带耳机会无故出现siri(带耳机会无故出声音吗)

    带耳机会无故出现siri(带耳机会无故出声音吗)

  • mpp是什么文件格式(mpp是什么格式?)

    mpp是什么文件格式(mpp是什么格式?)

  • airpodspro怎么调音量(airpodspro怎么调节音量)

    airpodspro怎么调音量(airpodspro怎么调节音量)

  • vivox30厚度(vivox30机身尺寸)

    vivox30厚度(vivox30机身尺寸)

  • 快手亲密度是啥意思(快手亲密度最高多少级)

    快手亲密度是啥意思(快手亲密度最高多少级)

  • 抖音长腿特效怎么没了(抖音长腿特效怎么找不到)

    抖音长腿特效怎么没了(抖音长腿特效怎么找不到)

  • 华为watch gt2怎么设置锁屏(华为watchgt2怎么下载应用)

    华为watch gt2怎么设置锁屏(华为watchgt2怎么下载应用)

  • 手机屏上圆圈怎么去掉(手机屏上圆圈怎么取消)

    手机屏上圆圈怎么去掉(手机屏上圆圈怎么取消)

  • 无可用注册账号是什么(无可用注册账号怎么办)

    无可用注册账号是什么(无可用注册账号怎么办)

  • 拼多多15天后还能退货吗(拼多多15天后还能退款吗)

    拼多多15天后还能退货吗(拼多多15天后还能退款吗)

  • 小米9se具备防水吗(小米9se是否防水)

    小米9se具备防水吗(小米9se是否防水)

  • app未受信用怎么解决(app未授信 是什么意思)

    app未受信用怎么解决(app未授信 是什么意思)

  • 系统更新留下的补丁文件可以删吗(系统更新怎么恢复原来版本)

    系统更新留下的补丁文件可以删吗(系统更新怎么恢复原来版本)

  • qttask.exe是什么进程?qttask.exe是不是病毒?

    qttask.exe是什么进程?qttask.exe是不是病毒?

  • 莫尔国家公园中的天蚕蛾,加纳拉拉班加 (© Robert Thompson/Minden Pictures)(莫尔道嘎湿地公园)

    莫尔国家公园中的天蚕蛾,加纳拉拉班加 (© Robert Thompson/Minden Pictures)(莫尔道嘎湿地公园)

  • 增值税应交税费和申报的不一样怎么调整
  • 出售固定资产简易计税账务处理
  • 公司承担个税的账务处理
  • 银行开出的发票可以进行税抵扣吗
  • 投标报名费开什么类别发票
  • 临时设施摊销方案怎么写
  • 分公司是独立核算还是非独立核算
  • 零售商业企业经营的特点主要在于
  • 怎么算应纳企业所得税
  • 平销返利企业所得税处理
  • 企业承担的法律责任有哪些保险
  • 融资担保公司会计建议有哪些要求
  • 购买车位需要交哪些税
  • 公司车买的保险怎么查电子保单
  • 货物抵扣如何入账
  • 互联网税务行动计划五大板块
  • 哪几种跨省邮寄发票是违法的?
  • 马克龙成就
  • 实物型产品的基础知识
  • 生活服务业包括哪些行业照片
  • 计提法定盈余公积转入利润分配
  • 资产负债表资产总额为负数
  • 补贴收入营业外收入比例过高
  • 计提固定资产会计科目
  • 建筑行业当月无收入成本如何结转?
  • 两地取得工资个税怎么交
  • 如何计算净利润增长率
  • windows10如何关闭病毒和威胁防护设置
  • 预计负债基本确定的概率区间
  • 合并范围外关联方交易是否抵消
  • win10设置待机时间长怎么在哪里设置
  • executor进程
  • 硬盘最小的存储单位
  • 企业合并按合并的法律形式分类
  • vue-admin-master
  • 运输发票税金怎么算
  • 分配税后利润会计分录
  • framework 4 client profile 不动
  • 微信小程序开发平台
  • 【Spring+SpringMVC+Mybatis】Spring+SpringMVC+Mybatis实现前端到后台完整项目
  • 差旅费可以加计吗
  • 已提减值准备的固定资产报废,确认的所得税资产
  • python监控模块
  • mongodb快速入门
  • 往年补录情况
  • 新公司财务需要哪些东西
  • 员工出差时法律规定
  • 其他应付款科目贷方登记发生的各种应付
  • 小规模纳税人附加税怎么算
  • 息税前利润的计算公式中的利息费用
  • 制造费用和直接人工的关系
  • 主营业务成本账户属于什么账户
  • 押金退还需要多久
  • 摊销费用用什么凭证
  • 上年度凭证录错会计凭证录错了怎么修改
  • 同比增长率环比增长率怎么算
  • 天猫佣金会返还吗
  • 增值税年末一定要结转吗
  • 同期增长率如何计算
  • windows不兼容
  • 师说词类活用
  • bios是什么意思的
  • windows怎么查
  • Win8.1 64位系统安装Office365出现30125-1011错误提示的故障原因及解决方法
  • win7第三方更新
  • xp系统设置局域网
  • ubuntu怎样
  • win7电脑711
  • win7如何设置多用户
  • win7插上u盘显示格式化怎么办
  • windows2003服务器管理器在哪里
  • 单向链表的基本操作
  • javascript怎么学
  • 安卓环境搭建id怎么设置
  • jquery中用onclick绑定点击事件
  • jquery实现倒计时效果
  • 四川省地税局地址
  • 云南省代理记账管理实施办法
  • 杭州地税局客服电话
  • 资源税什么时候征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设