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

  • 屏幕使用时间有什么用(屏幕使用时间有时候显示不出来)

    屏幕使用时间有什么用(屏幕使用时间有时候显示不出来)

  • 微信里找群的步骤是什么(微信运动群排行榜不显示步数)

    微信里找群的步骤是什么(微信运动群排行榜不显示步数)

  • 微信运动怎么关闭(微信运动怎么关闭让别人看不到)

    微信运动怎么关闭(微信运动怎么关闭让别人看不到)

  • 余额宝的钱怎么转到银行卡(余额宝的钱怎么解冻)

    余额宝的钱怎么转到银行卡(余额宝的钱怎么解冻)

  • 暗夜精灵5键盘灯怎么关(暗夜精灵5键盘怎么开灯)

    暗夜精灵5键盘灯怎么关(暗夜精灵5键盘怎么开灯)

  • 微博特别关心对方会知道吗(微博里特别关心有消息怎么通知)

    微博特别关心对方会知道吗(微博里特别关心有消息怎么通知)

  • 如何使用ppt演示者模式

    如何使用ppt演示者模式

  • 秘乐短视频是怎么回事(秘乐短视频怎么搜索)

    秘乐短视频是怎么回事(秘乐短视频怎么搜索)

  • 华为应用锁退出不立即上锁(华为应用锁退出应用时立即锁)

    华为应用锁退出不立即上锁(华为应用锁退出应用时立即锁)

  • 淘宝换货能换颜色么(淘宝换货能换颜色不)

    淘宝换货能换颜色么(淘宝换货能换颜色不)

  • 无线桥接影响网速吗(无线桥接影响网速怎么设置)

    无线桥接影响网速吗(无线桥接影响网速怎么设置)

  • 华为如何开启儿童模式(华为如何开启儿童锁)

    华为如何开启儿童模式(华为如何开启儿童锁)

  • 微信记录找回(自己主动清空的微信记录找回)

    微信记录找回(自己主动清空的微信记录找回)

  • 怎么开通呼叫转移功能(怎么开通呼叫转接)

    怎么开通呼叫转移功能(怎么开通呼叫转接)

  • 苹果可以下载两个微信吗(苹果可以下载两个微信号吗)

    苹果可以下载两个微信吗(苹果可以下载两个微信号吗)

  • 怎样进入快手粉丝团(怎样进入快手粉丝群)

    怎样进入快手粉丝团(怎样进入快手粉丝群)

  • 华为怎么安装未知来源(华为怎么安装未来之役)

    华为怎么安装未知来源(华为怎么安装未来之役)

  • 虾米音乐怎么下载不了(虾米音乐怎么下载mv)

    虾米音乐怎么下载不了(虾米音乐怎么下载mv)

  • 小米流光照片怎么拍(小米流光照片怎么删除)

    小米流光照片怎么拍(小米流光照片怎么删除)

  • cad怎么查看块的数量(cad查看块的快捷命令)

    cad怎么查看块的数量(cad查看块的快捷命令)

  • 笔记本一开机正在休眠(笔记本开机正在扫描和修复驱动器)

    笔记本一开机正在休眠(笔记本开机正在扫描和修复驱动器)

  • 短视频app应该怎么开发(短视频app应该怎么选择)

    短视频app应该怎么开发(短视频app应该怎么选择)

  • Windows 10时钟图标不见了怎么办(windows10自带桌面时钟)

    Windows 10时钟图标不见了怎么办(windows10自带桌面时钟)

  • IDEA如何运行Eclipse项目(超详细图解)(idea如何运行springboot项目)

    IDEA如何运行Eclipse项目(超详细图解)(idea如何运行springboot项目)

  • 出口退税一般退什么税
  • 一般纳税人的申报方式
  • 如何分辨海关完税凭证的真假?
  • 关税计算怎么算?
  • 小规模纳税人怎么办理
  • 国企的注册资本也很少吗
  • 免税申报表里的免税销售额是不含税
  • 全年一次性奖金个税计算
  • 对方发票丢了能报销吗
  • 货币资金应计入什么科目
  • 7月薪资8月发怎么交税
  • 非居民劳务个税怎么计算
  • 认证不抵扣的账务处理
  • 开发间接费用的分配率为本月
  • 服务费做成本分录
  • 应收账款的借方表示增加还是减少
  • 资产减值损失进利润表吗
  • 关于转让费的问题
  • 未分配利润应该在借方还是贷方??
  • 装修预付款怎么做账
  • 企业暂估收入申报,未开发票,几年以后要开票如何处理
  • 必要收益率的计算题目
  • 有进项税额转出怎么结转增值税
  • 会计事务所成本核算方法
  • 小规模没有发票可以入账吗
  • 计划成本是什么科目
  • 线上网速测试
  • php基础语法
  • 支付航天的代理公司
  • swoole如何使用
  • 最强笔记本2021
  • xcsp_eclib.dll
  • 邮件发送错误怎么解释
  • 免费设备投放项目
  • 理财收益如何计税
  • tensorflow gan
  • vue 组件
  • 一次性伤残就业补助金
  • 个人退税证明怎么开具
  • 税务局退还的三种税费
  • 应交税费为负数在资产负债表里怎么填
  • 企业账户在银行买黄金可以开发票吗
  • mysql如何开启
  • mysql 局域网访问权限
  • 单位买车和个人买车交税有何不同
  • 运输服务属于生活服务吗
  • 对公账户转到个体工商户
  • 未投入使用的固定资产折旧计入什么科目
  • 所得税弥补以前年度亏损什么意思
  • 一般纳税人购买原材料会计分录
  • 购买货物运输费计入什么科目
  • 收到对方开的红字发票怎么做账
  • 冲销以前年度主营业务成本
  • 建筑业成本必须分别核算么
  • 城市天然气管道爆炸
  • 原始凭证丢了判刑吗
  • 64位Win10系统安装Mysql5.7.11的方法(案例详解)
  • windows 配置
  • mysql语句group by
  • Win10 Mobile Creators预览版14959更新修复内容与已知问题汇总
  • centos6.10修改主机名
  • win8pe下载iso
  • linux wechat
  • xp安装盘复制u盘
  • win7系统如何设置
  • mac在哪看
  • win8.1卸载软件在哪里
  • centos打包文件
  • linux learn
  • edit apps
  • python 爬虫例子
  • jquery实战
  • 编写自己的linux系统
  • JavaScript中String.match()方法的使用详解
  • 用python写个脚本
  • bootstrap要学到什么程度
  • 代扣社保代扣公式是什么
  • 报纸的增值税税目是什么
  • tbc法力陵墓入口
  • 江西车辆购置税查询网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设