session购物车

这个博客展示了如何利用Java的Session对象在Web应用中实现一个简单的前端购物车功能。用户可以通过点击按钮将商品添加到购物车,购物车页面能够显示商品的名称、单价、数量和总价,并允许用户修改数量或删除商品。通过`dogwc.jsp`页面处理增加和删除操作,实时更新购物车状态。
摘要由CSDN通过智能技术生成

这期我们利用session内置对象写了一个简易版前端购物车

主页面

把我们的商品用集合放在主页面

<%@page import="entity.Goods"%>
<%@page import="java.util.ArrayList"%>
<%@page import="dao.GoodsDao"%>
<%@ 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>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<script type="text/javascript">
	function gm(bid){
		location.href="dogwc.jsp?bid="+bid;
	}
</script>
</head>
<body>
	<table class="table table-hover">
		<tr>
			<td>商品编号</td>
			<td>商品名称</td>
			<td>商品单价</td>
			<td>商品介绍</td>
			<td>商品图片</td>
			<td>操作一下</td>	
		</tr>
		<%
		GoodsDao gd=new GoodsDao();
		ArrayList<Goods> glist=gd.getAll();
		for(Goods g :glist){
			//System.out.print(g);
		%>
		<tr>
			<td><%=g.getBid()%></td>
			<td><%=g.getBname()%></td>
			<td><%=g.getBprice()%></td>
			<td><%=g.getBinfo()%></td>
			<td>
			<img src="<%=g.getBface()%>">
			</td>
			<td>
			<button onclick="gm(<%=g.getBid()%>)" class="btn btn-success">添加到购物车</button>
			</td>
		</tr>
		<% }%>
	</table>
</body>
</html>

购物车

 在这里我们可以进行删除和增加数量,可以自动接收到金额并进行计算

<%@page import="entity.dd"%>
<%@page import="java.util.ArrayList"%>
<%@ 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>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"/>
<script type="text/javascript">
function $(id) {
	return document.getElementById(id);
}
function xg(obj,bid){
	var gnumber=obj.value;
	location.href="dogwc.jsp?bid="+bid+"&gn="+gnumber;
}
function bbb(obj,a,bid){
	if(a=='-'){
		var gnumber=parseInt($("text").value)-1;
		//alert($("text").value)
	location.href="dogwc.jsp?bid="+bid+"&gn="+gnumber;
	}else if(a=='+'){
		var gnumber=parseInt($("text").value)+1;
		location.href="dogwc.jsp?bid="+bid+"&gn="+gnumber;
	}	
}
</script>
</head>
<body>
<table class="table table-hover">
<tr>
	<td>商品名称</td>
	<td>商品单价</td>
	<td>商品信息</td>
	<td>商品图片</td>
	<td>商品数量</td>
	<td>总价</td>
	<td>操作一下</td>
</tr>

<%
int sum=0;
	ArrayList<dd> slist= (ArrayList<dd>)session.getAttribute("slist"); 
		for(dd d: slist){
			
%>
<tr>
	<td><%=d.getGood().getBname()%></td>
	<td><%=d.getGood().getBprice()%></td>
	<td><%=d.getGood().getBinfo()%></td>
	<td>
	<img src="<%=d.getGood().getBface()%>">
	</td>
	<td>
	<button class="btn" onclick="bbb(this,'+',<%=d.getGood().getBid()%>)">+</button>
	<input id="text" onblur="xg(this,<%=d.getGood().getBid()%>)" type="text" style="width:40px;text-align:center" value="<%=d.getGnumber()%> "/>
	<button class="btn" onclick="bbb(this,'-',<%=d.getGood().getBid()%>)">-</button>
	</td>
	<td><%=d.getGprice()%></td>
	<td>
		<button onclick="sc(<%=d.getGood().getBid()%>)" class="btn btn-danger">删除</button>
	</td>
</tr>

		<% sum+=d.getGprice(); }%>
</table>
<button class="btn" >总价<%=sum%></button>
<a href="index.jsp">返回首页</a>
</body>
</html>

这里是dogwc页面

这里有着就行增加操作的代码以及数组和一系列传值处理

<%@page import="java.util.ArrayList"%>
<%@page import="dao.GoodsDao"%>
<%@page import="entity.dd"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	String number=request.getParameter("gn");
	int count=1;
	if(number!=null){
		count=Integer.valueOf(number);
	}
	String id=request.getParameter("bid");
	int bid=Integer.valueOf(id);
	dd d=new dd();
	GoodsDao gd=new GoodsDao();
	d.setGood(gd.getbyId(bid));
	d.setGnumber(1);
	d.setGprice();
	ArrayList<dd> slist=(ArrayList<dd>)session.getAttribute("slist");
	if(slist==null){
	slist=new ArrayList<>();
	}
	boolean b=true;
	for(int i=0;i<slist.size();i++){
		if(bid==slist.get(i).getGood().getBid()){
			if(number==null){
			slist.get(i).setGnumber(slist.get(i).getGnumber()+1);
			slist.get(i).setGprice();
			}else{
				slist.get(i).setGnumber(count);
				slist.get(i).setGprice();
			}
			b=false;
		}
	}
	if(b){
		
	slist.add(d);
	}
	
	session.setAttribute("slist", slist);
	response.sendRedirect("gwc.jsp");
%>

删除页面,在这里我们进行购物车删除,并重新把数组转发,用session重新储存

<%@page import="entity.dd"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
String id= request.getParameter("bid");
int bid=Integer.valueOf(id);
ArrayList<dd> slist= (ArrayList<dd>)session.getAttribute("slist"); 
for(int i=0;i<slist.size();i++){
	if(slist.get(i).getGood().getBid()==bid){
		slist.remove(i);
		response.sendRedirect("gwc.jsp");
	}
	session.setAttribute("slist", slist);
}

%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值