今天给大家带来了这个web-jsp的购物车项目,让我们一起康康吧!
第一个肯定是我们的登录界面
目录
一,wabapp
1,login.jsp
<%@page import="com.zking.pojo.Goods"%>
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@page import="com.zking.biz.impl.GoodsBizImpl"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@page import="com.zking.pojo.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>华美商城</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css">
<script
src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
<script
src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
<style>
td:nth-child(3)::before {
content: "$";
}
</style>
</head>
<body>
<%
Object obj = session.getAttribute("user");
if (obj == null) {
response.sendRedirect("login.jsp");
return;
}
%>
<%=session.getAttribute("car")%>
<div class="jumbotron">
<div class="container">
<h1>欢迎光临华美SuperMarket</h1>
<p>
尊贵的<%=((User) obj).getAccount()%></p>
</div>
</div>
<div class="container">
<table class="table">
<tr>
<th>商品序号</th>
<th>商品名称</th>
<th>商品单价</th>
<th>商品描述</th>
<th>操作</th>
</tr>
<%
IGoodsBiz goodsbiz = new GoodsBizImpl();
for (Goods goods : goodsbiz.getAll()) {
%>
<tr>
<td><%=goods.getId()%></td>
<td><%=goods.getName()%></td>
<td><%=goods.getPrice()%></td>
<td><%=goods.getInfo()%></td>
<td>
<div class="btn-group btn-group-xs">
<button class="btn btn-primary">
<span class="glyphicon glyphicon-tags"></span>
</button>
<a href="doAddCar.jsp?id=<%=goods.getId()%>" class="btn btn-primary">添加购物车</a>
</div>
</td>
</tr>
<%
}
%>
</table>
</div>
</body>
</html>
2.dologin.jsp
<%@page import="java.util.ArrayList"%>
<%@page import="com.zking.vo.CarItem"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.pojo.User"%>
<%@page import="com.zking.biz.impl.UserBizImpl"%>
<%@page import="com.zking.biz.IUserBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
String account = request.getParameter("account");
String password = request.getParameter("password");
IUserBiz userbiz = new UserBizImpl();
User user = userbiz.login(new User(0, account, password));
if (user == null) {
response.sendRedirect("login.jsp");
} else {
session.setAttribute("user", user);
//分配购物车
List<CarItem> car = new ArrayList<>();
//吧购物车放到session
session.setAttribute("car", car);
response.sendRedirect("index.jsp");
}
%>
3,index.jsp主界面
<%@page import="com.zking.pojo.Goods"%>
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@page import="com.zking.biz.impl.GoodsBizImpl"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@page import="com.zking.pojo.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>华美商城</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/css/bootstrap.css">
<script
src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script>
<script
src="${pageContext.request.contextPath}/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
<style>
td:nth-child(3)::before {
content: "$";
}
</style>
</head>
<body>
<%
Object obj = session.getAttribute("user");
if (obj == null) {
response.sendRedirect("login.jsp");
return;
}
%>
<%=session.getAttribute("car")%>
<div class="jumbotron">
<div class="container">
<h1>欢迎光临华美SuperMarket</h1>
<p>
尊贵的<%=((User) obj).getAccount()%></p>
</div>
</div>
<div class="container">
<table class="table">
<tr>
<th>商品序号</th>
<th>商品名称</th>
<th>商品单价</th>
<th>商品描述</th>
<th>操作</th>
</tr>
<%
IGoodsBiz goodsbiz = new GoodsBizImpl();
for (Goods goods : goodsbiz.getAll()) {
%>
<tr>
<td><%=goods.getId()%></td>
<td><%=goods.getName()%></td>
<td><%=goods.getPrice()%></td>
<td><%=goods.getInfo()%></td>
<td>
<div class="btn-group btn-group-xs">
<button class="btn btn-primary">
<span class="glyphicon glyphicon-tags"></span>
</button>
<a href="doAddCar.jsp?id=<%=goods.getId()%>" class="btn btn-primary">添加购物车</a>
</div>
</td>
</tr>
<%
}
%>
</table>
</div>
</body>
</html>
4.addCar.jsp
<%@page import="java.util.List"%>
<%@page import="com.zking.biz.impl.GoodsBizImpl"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@page import="com.zking.vo.CarItem"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
List<CarItem> car = (List<CarItem>) session.getAttribute("car");
IGoodsBiz goodsbiz = new GoodsBizImpl();
//
String str = request.getParameter("id");
//
int id = -1;
if (str != null) {
id = Integer.parseInt(str);
}
boolean f = true;
for (CarItem item : car) {
if (id == item.getGoods().getId()) {
item.setCount(item.getCount() + 1);//数量加一
item.setSum(item.getCount()*item.getGoods().getPrice());//总价
f = false;
break;
}
}
if (f) {
//生成一个caritem
CarItem caritem = new CarItem();
//
caritem.setGoods(goodsbiz.getOne(id));
//
caritem.setCount(1);
//
caritem.setSum(caritem.getCount()*caritem.getGoods().getPrice());
//
car.add(caritem);
//
}
session.setAttribute("car", car);
response.sendRedirect("index.jsp");
%>
二,dao 层
1,IGoodsDao(商品接口)
package com.zking.dao;
import java.util.List;
import com.zking.pojo.Goods;
public interface IGoodsDao {
List<Goods> getAll();
Goods getOne(Integer id);
}
2,IUserDao (用户接口)
package com.zking.dao;
import com.zking.pojo.User;
public interface IUserDao {
User login(User user);
}
3,GoodDaoImpl (商品接口实体类)
package com.zking.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.zking.dao.IGoodsDao;
import com.zking.pojo.Goods;
import com.zking.util.DBHepler;
public class GoodDaoImpl implements IGoodsDao {
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public List<Goods> getAll() {
List<Goods> list = new ArrayList<Goods>();
try {
con = DBHepler.getCon();
ps = con.prepareStatement("select * from shop_goods");
rs = ps.executeQuery();
while (rs.next()) {
Goods goods=new Goods();
goods.setId(rs.getInt(1));
goods.setName(rs.getString(2));
goods.setPrice(rs.getInt(3));
goods.setInfo(rs.getString(4));
list.add(goods);
}
return list;
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHepler.close(con, ps, rs);
}
return null;
}
@Override
public Goods getOne(Integer id) {
try {
con = DBHepler.getCon();
ps = con.prepareStatement("select * from shop_goods where id=?");
ps.setInt(1, id);
rs = ps.executeQuery();
if (rs.next()) {
Goods goods=new Goods();
goods.setId(rs.getInt(1));
goods.setName(rs.getString(2));
goods.setPrice(rs.getInt(3));
goods.setInfo(rs.getString(4));
return goods;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHepler.close(con, ps, rs);
}
return null;
}
}
4,UserDaoImpl (用户接口实体类)
package com.zking.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.zking.dao.IUserDao;
import com.zking.pojo.User;
import com.zking.util.DBHepler;
public class UserDaoImpl implements IUserDao {
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public User login(User user) {
try {
con = DBHepler.getCon();
ps = con.prepareStatement("select * from shop_user where account=?");
ps.setString(1, user.getAccount());
rs = ps.executeQuery();
while (rs.next()) {
User u = new User();
u.setId(rs.getInt(1));
u.setAccount(rs.getString(2));
u.setPassword(rs.getString(3));
return u;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHepler.close(con, ps, rs);
}
return null;
}
}
三,pojo包
1,商品实体类 Goods.jsp
package com.zking.pojo;
public class Goods {
private Integer id;
private String name;
private Integer price;
private String info;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Goods [id=" + id + ", name=" + name + ", price=" + price + ", info=" + info + "]";
}
public Goods(Integer id, String name, Integer price, String info) {
super();
this.id = id;
this.name = name;
this.price = price;
this.info = info;
}
public Goods() {
// TODO Auto-generated constructor stub
}
}
2,用户实体类User.jsp
package com.zking.pojo;
public class Goods {
private Integer id;
private String name;
private Integer price;
private String info;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "Goods [id=" + id + ", name=" + name + ", price=" + price + ", info=" + info + "]";
}
public Goods(Integer id, String name, Integer price, String info) {
super();
this.id = id;
this.name = name;
this.price = price;
this.info = info;
}
public Goods() {
// TODO Auto-generated constructor stub
}
}
四,Biz业务逻辑层
1,商品业务逻辑层 IGoodsBiz.jsp
package com.zking.biz;
import java.util.List;
import com.zking.pojo.Goods;
public interface IGoodsBiz {
List<Goods> getAll();
Goods getOne(Integer id);
}
2,GoodsBizImpl .jsp(商品接口实现类)
package com.zking.biz.impl;
import java.util.List;
import com.zking.biz.IGoodsBiz;
import com.zking.dao.IGoodsDao;
import com.zking.dao.impl.GoodDaoImpl;
import com.zking.pojo.Goods;
public class GoodsBizImpl implements IGoodsBiz {
private IGoodsDao goodsdao = new GoodDaoImpl();
@Override
public List<Goods> getAll() {
return goodsdao.getAll();
}
@Override
public Goods getOne(Integer id) {
return goodsdao.getOne(id);
}
}
3,IUserBiz.jsp(用户业务逻辑层)
package com.zking.biz;
import com.zking.pojo.User;
public interface IUserBiz {
User login(User user);
}
4,UserBizImpl.jsp(用户实现类)
package com.zking.biz.impl;
import com.zking.biz.IUserBiz;
import com.zking.dao.IUserDao;
import com.zking.dao.impl.UserDaoImpl;
import com.zking.pojo.User;
public class UserBizImpl implements IUserBiz {
private IUserDao userdao = new UserDaoImpl();
@Override
public User login(User user) {
User u = userdao.login(user);
if (u != null) {
if (u.getPassword().equals(user.getPassword())) {
return u;
}
}
return null;
}
}
五,uitl包,数据库连接(DBHepler )
package com.zking.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleDriver;
public class DBHepler {
static {
try {
// OracleDriver
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
// 定义链接字符串
public static final String URL = ":oracle:thin:@localhost:1521:orcl";
// 获得链接
public static Connection getCon() {
try {
return DriverManager.getConnection(URL, "用户名", "用户密码");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return null;
}
// 关闭资源
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (con != null && !con.isClosed()) {
con.close();
}
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
**
六,Vo包
**
package com.zking.vo;
import com.zking.pojo.Goods;
public class CarItem extends Goods{
private Integer count;// 数量
private Integer sum;// 条目总价
private Goods goods;//
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public Integer getSum() {
return sum;
}
public void setSum(Integer sum) {
this.sum = sum;
}
public void setGoods(Goods goods) {
this.goods = goods;
}
public Goods getGoods() {
return goods;
}
@Override
public String toString() {
return "CarItem [count=" + count + ", sum=" + sum + "]";
}
public CarItem(Integer count, Integer sum, Goods goods) {
super();
this.count = count;
this.sum = sum;
this.goods = goods;
}
public CarItem() {
}
}
七,项目包类预览
今天的项目就分享到这里了,关注小编了解购物车下一步操作