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

  • 增值税专用发票丢失了要怎么处理
  • 不良资产处置措施
  • 往来差异一般原因有哪些
  • 公司开办期间的装修费怎么会计处理
  • 净资产账面价值怎么计算
  • 企业的车辆因违法停放
  • 企业所得税公益捐赠扣除限额
  • 企业自建房产可以抵押吗
  • 城建税如何核算成本
  • 存货置换固定资产
  • 公司投资股票有风险吗
  • 买商铺返租金之套路
  • 材料未验收入库属于哪个科目
  • 海关进口需要什么手续
  • 税务局返还的代征代扣要交增值税吗
  • 关于小规模纳税人的说法错误的有
  • 如何确定旧机器的折旧年限?
  • 出售二手车税率3%减按2%征收的政策
  • 当进项大于销项需要做账务处理吗?
  • 小规模纳税人出售使用过的汽车
  • 电子账本excel模板
  • 来的货比合同金额多怎么申报印花税?
  • 非专利技术转让合同印花税
  • 总分机构异地移送
  • 其他综合收益会计科目编码
  • 没有对公账户怎么办
  • 金融保险属于什么行业
  • qq登录界面的设计与实现
  • php与jquery
  • 退回多收款项开具发票原发票需要退回吗
  • 营改增后工程税收怎么计算
  • pc direct
  • 酒店如何核算成本
  • vue 首页
  • 一般纳税人增值税减免政策2023
  • axure rp9视频教程
  • ecshop有哪些bug
  • 第三方代收的款项是什么意思
  • 卸载的应用怎么找回来
  • c语言的空指针
  • ps快速选择工具抠图
  • java泛型E和T
  • 股东之间股权转让需要股东会决议吗
  • 增值税进项税如何申报
  • 物权转移的几种情形
  • 织梦论坛
  • 年金现值和终值的计算
  • 发票遗失有什么影响
  • 期初库存和期末库存可以修改吗
  • 下月初可以认证上月的发票么
  • 不动产初始登记证明
  • 突然收到财付通转出的钱
  • 低值易耗品入账
  • 哪些发票能做公章
  • 资产减值损失结转到本年利润吗
  • 工程行业收到工程发票
  • 大型商业企业
  • 结账时怎样根据日期填写
  • mysql数据库详解
  • 必应big
  • windows server 2003 sp1.
  • open dhcp server
  • 苹果Mac系统怎么用光盘安装
  • centos7.2安装
  • win8计算机配置在哪
  • 耳朵前皮下有个小软包
  • cocos2d怎么用
  • unity例子
  • python3网络爬虫
  • unity mrt
  • app启动页动画效果
  • unity怎么设置多个关卡
  • jquery事件解绑
  • jquery实现自动轮播
  • unity开发平台
  • js如何获取当前页面的url
  • 总局公告2011年第34号
  • 教育培训行业的发展前景
  • 深圳增值税勾选平台网址
  • 政治部副主任是干嘛的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设