session实现简易购物车Demo

该博客介绍了使用session实现简易购物车demo的方法。不涉及数据库操作,用Map存放物品信息。包含添加商品界面、处理商品添加的servlet、购物车信息展示界面和清空购物车的servlet,还展示了添加、展示及清空后的界面效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用session实现一个简易的购物车demo,主要就是将物品添加到购物车,以及清空购物车,不涉及数据库操作,使用Map存放物品信息。

简易添加商品界面(太过简易,四个超链接 add.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="../KindServlet?id=0"><h1>ad钙奶</h1></a><br>
<a href="../KindServlet?id=1"><h1>泡面</h1></a><br>
<a href="../KindServlet?id=2"><h1>香肠</h1></a><br>
<a href="../KindServlet?id=3"><h1>雀巢</h1></a><br>
</body>
</html>

接下来就是它的kindservlet(处理商品添加)

这里用数组存放商品信息,然后用map容器商品为键,商品数量为值,它的流程是首先用map去接受request.getsession.getAttribute里的值,你没、setAttribute,那它肯定为空啊,所以首先setAttribute,然后第一次将它的第一个商品和数量1存放到map中,接下来如果商品重复了数量就加一,否则将它的商品和数量1存放到map中,最后有两个超链接,继续购买和清空购物车。

public class KindServlet extends HttpServlet {
	
   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		int id = Integer.parseInt(request.getParameter("id"));
		String []names= {"ad钙奶","泡面","香肠","雀巢"};
		String name=names[id];
		Map<String,Integer> map=(Map<String, Integer>) request.getSession().getAttribute("kind");
		if(map==null)
		{
			map=new HashMap<String, Integer>();
			request.getSession().setAttribute("kind", map);
		}
		if(map.containsKey(name))
		{
		map.put(name,map.get(name)+1);
	}else
	{
		map.put(name,1);
	}
		response.getWriter().write("<a href='./session/add.jsp'><h1>继续购买</h1></a>");
		response.getWriter().write("<a href='./session/show.jsp'><h1>去购物车结算</h1></a>");
   }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

接下来是购物车信息展示界面(简易show.jsp)

<%@page import="java.util.Map"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>购物车商品:</h2>
<%
Map<String,Integer>map=(Map<String,Integer>)session.getAttribute("kind");
if(map!=null)
{
	for(String key:map.keySet())
	{
		int val=map.get(key);
		System.out.print(val);
		%>
		<h3>名称:<%=key%>  数量:<%=val%></h3>
		<% 
	}
}
%>
<a href="../ClearServlet">清空购物车</a>
</body>
</html>

清空购物车的clearservlet(就是将它的Attribute  remove掉或者终止这个session都可以)

public class ClearServlet extends HttpServlet {
	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().removeAttribute("kind");
response.sendRedirect("./session/show.jsp");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

效果:添加商品界面

商品信息界面

清空购物车后界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值