06-购物车的实现原理Session
package com.ivan.web; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; 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 com.ivan.model.Book; /** * 购物车实现方案: * 1.把商品书存在session中 * 问题:1.浏览器重新打开,以前数据不在了【把书的id放在cookie】 * 2.当服务重启后,以前数据也不在【1.把书的id放在cookie,2.把session保存起来】 * @author exp * */ @WebServlet("/BuyBookServlet") public class BuyBookServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setHeader("content-type","text/html;charset=utf-8"); //用户买书-书放在购物车【掌握】 //1.获取书的ID String bookId = request.getParameter("id"); //2.通过书id找到这本书 Book book = Dbutils.findBookId(Integer.parseInt(bookId)); //3.把这个书放在购物车List<Book> cart //3.1先从session取出购物车 List<Book> cart = (List<Book>)request.getSession().getAttribute("cart"); //3.2如果没有购物车对象,就创建一个 if(cart == null){ System.out.println("当前session没有购物车"); cart = new ArrayList<Book>(); }else{ System.out.println("当前session有购物车"); } cart.add(book); //4.把这个list放在session中 request.getSession().setAttribute("cart", cart); //5.显示购物车的信息 PrintWriter writer = response.getWriter(); writer.write("购物车信息:"); for(Book b : cart){ writer.write("<br>" + b.getName()); } } }
分类:
Servlet实战应用
, java Session概述
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?