这期我们利用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);
}
%>
这个博客展示了如何利用Java的Session对象在Web应用中实现一个简单的前端购物车功能。用户可以通过点击按钮将商品添加到购物车,购物车页面能够显示商品的名称、单价、数量和总价,并允许用户修改数量或删除商品。通过`dogwc.jsp`页面处理增加和删除操作,实时更新购物车状态。

2695

被折叠的 条评论
为什么被折叠?



