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

  • 个人所得税申报截止时间
  • 注册税务师的报名条件、时间及考试
  • 老板的报销分录怎么写
  • 电信宽带个人和公司办收费标准
  • 小规模没有计提增值税直接缴纳了
  • 劳务费发票入账在所得税中有何规定
  • 建筑劳务属于什么税收分类
  • 外贸委外加工企业成本怎么核算
  • 出差回来报销差旅费,补付现金的会计分录
  • 购买商标权税率多少
  • 国外出差差旅费
  • 办公楼贷款比例
  • 销售收入分成率计算公式
  • 车辆购置税如何计算
  • 一次性收到跨期租赁费会计分录
  • 股东转账实收资本怎么填
  • 申报专项资金项目是什么
  • 差额纳税销项税额抵减
  • 购买固定资产的进口关税
  • 定期存款利息税是多少
  • 没有签订劳动合同员工离职怎么处理
  • 开了发票必须记收入吗
  • 电子钥匙到期怎么办
  • 无偿使用房屋
  • 支付测量费的补贴费用怎么记账
  • 返利发票税率
  • 租入的生产设备改良支出计入什么费用
  • PHP:xml_set_object()的用法_XML解析器函数
  • 单位卖二手车需交税吗
  • php语言之面向对象编程 educoder
  • 子公司接受母公司捐赠的会计处理
  • php数组函数实现机选双色球
  • low是什么文件
  • 补提去年的所得税费用是怎么做分录?
  • 固定资产修理支出准予扣除吗
  • node.txt
  • VUE -- defineExpose
  • 分包缴纳的个税怎么算
  • 毕业设计教程
  • 毕业设计基于web难还是JAVA
  • 个人综合所得汇算申报流程
  • dedecmsv6插件不能用
  • 预收的贷方余额表示什么
  • 人力资源服务的发票明细
  • 减值准备为什么不影响影响资产余额
  • 出租车公共服务
  • 增资扩股和股权转让一样吗
  • 基本户与一般户的作用
  • 交易性金融资产包括哪些项目
  • mysqld-nt: Out of memory (Needed 1677720 bytes)解决方法
  • 利润分配未分配利润在报表里怎么体现
  • 出口退免税的税种包括增值税消费税企业所得税
  • 退货给谁
  • 支票存根联丢失可以用回单代替么
  • 给客户的回扣怎么表达
  • 存货质押融资的公司有哪些
  • 年终奖个税计税方式
  • 职工福利费汇算清缴
  • 咨询服务费计入哪里
  • 结转已售材料成本6000元
  • sql server 1222解决
  • 正确使用气体钢瓶的原则
  • win10怎么预览文件
  • aow.exe是什么进程
  • 事件查看器中"TermService" 服务的性能库问题处理
  • win8.1系统怎么升级到win10
  • win10系统如何查看
  • 正二十面体怎么建模
  • [置顶]游戏名:chivalry2
  • 多媒体播放器使用方法
  • javascript entries
  • android 基础
  • python如何将矩阵转为图像
  • python科学计算基础教程
  • 利用ctypes提高Python的执行速度
  • 江苏省国家税务总局江苏省电子税务局
  • 深圳如何打印个人征信
  • 四川4050社保补贴政策什么时候发放
  • 广东省电子税务局登录方式
  • 汽车契税和购置税一样吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设