基于javaweb的JSP+Servlet婚品婚纱商城系统(java+servlet+jsp+javascript+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

210923551103

220923551103

230923551103

240923551103

250923551103

260923551103

基于javaweb的JSP+Servlet婚品婚纱商城系统(java+servlet+jsp+javascript+mysql)

一、项目运行

运行环境

jdk8+tomcat8+mysql+IntelliJ IDEA( Eclispe , MyEclispe ,Sts 都支持,代码与开发环境运行无关啦,只需要调整环境即可)

项目技术 

Servlet、JSP 、、MySQL 、 Ajax 、JavaScript、CSS、等等

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
    orders.setUser(user);

//从会话中的购物车获取了所有的购物项
Map<String, CartItem> cartMap = cart.getMap();
for (Map.Entry<String, CartItem> entry : cartMap.entrySet()) {
CartItem cartItem = entry.getValue();

//创建订单明细
OrderItem orderItem = new OrderItem();

//设置明细编号
orderItem.setItemid(CommonUtils.getUUID().replaceAll("-", ""));
//设置购买数量
orderItem.setCount(cartItem.getBuyNum());
//设置小计
orderItem.setSubtotal(cartItem.getSubTotal());
//设置购买商品信息
orderItem.setProduct(cartItem.getProduct());
//设置所属订单
orderItem.setOrders(orders);

//设置订单中的多个订单明细
orders.getItemsList().add(orderItem);
}

//提交订单
boolean flag = service.submitOrder(orders);
if (flag) {
//提交成功
session.setAttribute("orders", orders);
response.sendRedirect("order.jsp");
} else {
//提交失败
request.setAttribute("msg", "当前订单提交失败,请重新提交");
request.getRequestDispatcher("cart.jsp").forward(request, response);
}

}


//确认订单
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

//时间转换器:将String-->Date
ConvertUtils.register(new Converter() {
@Override
public Object convert(Class type, Object o) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(o.toString());
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}, Date.class);

try {
//给user对象依次赋值属性
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}

//uid 用户编号
String uid = CommonUtils.getUUID().replaceAll("-","");
user.setUid(uid);

//code 激活码
String code = CommonUtils.getUUID().replaceAll("-","");
user.setCode(code);

//将密码加密存储
user.setPassword(MD5Utils.md5(user.getPassword()));

//执行service中的注册逻辑
boolean flag = service.regist(user);
if(flag){
//注册成功,跳转到registSuccess.jsp
//发送邮件(包含激活码)
String emailMsg = "恭喜您注册成功,请复制此链接打开激活" +
"http://localhost:8888/user?method=active&code="+code+"'";
try {
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    String[] title = {"商品编号", "商品名称", "商品描述", "商品价格", "商品图片", "商品日期"};
String[] prop = {"pid", "pname", "pdesc", "shop_price", "pimage", "pdate"};
//excel的名字
String fileName = "goods.xls";
//sheet页的名字
String sheetName = "商品详情";
//当前页码
int pageNow = Integer.parseInt(request.getParameter("pageNow"));
//数据
List<Product> goods = service.findAll("product", "", pageNow).getList();

HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, prop, goods, null);

//输出文件
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
OutputStream os = response.getOutputStream();
wb.write(os);
os.flush();
os.close();
}

//首页
public void showIndex(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<HomeVO> list = service.findNumByMonth();
Gson gson = new Gson();
String json = gson.toJson(list);
response.getWriter().write(json);
}

//添加和修改商品类别
public void updateCategory(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String code = request.getParameter("code");
Category category = new Category();
if (code.equals("add")) { //添加商品类别
category.setCid(CommonUtils.getUUID().replace("-", ""));
} else if (code.equals("update")) {
category.setCid(request.getParameter("cid"));
}
category.setCname(request.getParameter("cname"));
service.updateCategory(code, category);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    public void index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//热门商品
List<Product> productsHot = service.viewHot();
request.setAttribute("productsHot",productsHot);

//跳转至index.jsp
request.getRequestDispatcher("index.jsp").forward(request,response);

}

//查看商品列表
public void viewProductListByCid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//从请求参数中获取当前页
String page = request.getParameter("pageNow");
int pageNow = 1; //默认查询第一页
if(page!=null){
pageNow = Integer.parseInt(page);
}

//从请求参数中获取查询条件 pname cid
String pname = request.getParameter("pname");
if(pname==null){
pname = ""; //默认查询所有
}

String cid = request.getParameter("cid");

// 执行service的分页方法
PageVO<Product> vo = service.viewProductListByCid(cid, pname, pageNow);

//将vo传递到页面中
request.setAttribute("vo",vo);
request.setAttribute("cid",cid);

request.getRequestDispatcher("shop.jsp").forward(request,response);

}


//通过ID编号查询商品信息
public void viewProductById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

//若是第一次从会话中获取购物车
if(cart==null){
cart = new Cart();
}

double newSubTotal = subTotal;

//获取会话中购物车明细
Map<String, CartItem> cartItemMap = cart.getMap();

//当前会话中是否存在正在添加的商品
if(cartItemMap.containsKey(pid)){
int oldNum = cartItemMap.get(pid).getBuyNum();
//合并后的总数量
buyNum += oldNum;
//当前合并后,重新计算小计
newSubTotal = buyNum * product.getShop_price();
}


//封装CartItem购物车明细
CartItem cartItem = new CartItem(product,buyNum,newSubTotal);

//封装购物车
cartItemMap.put(pid,cartItem);
//将购物车明细添加进来
cart.setMap(cartItemMap);
//将总金额添加进来
double total = cart.getTotal() + subTotal;
cart.setTotal(total);

session.setAttribute("cart",cart);
response.sendRedirect("cart.jsp");
}

//删除当前购物项
public void delCart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String pid = request.getParameter("pid");

//1.从会话中获取购物车
HttpSession session = request.getSession();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
    HttpSession session = request.getSession();
session.invalidate();
response.sendRedirect(request.getContextPath() + "/admin/adminlogin.jsp");
}

//查询所有(会员查询所有、商品查询所有、订单查询所有)
public void findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String page = request.getParameter("pageNow");
String query = request.getParameter("query");

int pageNow = 1;
if (page != null) {
pageNow = Integer.parseInt(page);
}
if (query == null) {
query = "";
}

String code = request.getParameter("code");
PageVO vo = service.findAll(code, query, pageNow);

request.setAttribute("vo", vo);
request.setAttribute("query", query);

switch (code) {
case "user":
//若code是user时,跳转到会员管理界面
request.getRequestDispatcher(request.getContextPath() + "/admin/user/user.jsp").forward(request, response);
break;
case "product":
//若code是product时,跳转到商品管理界面
request.getRequestDispatcher(request.getContextPath() + "/admin/product/product.jsp").forward(request, response);
break;
case "order":
//若code是order时,跳转到订单管理界面
request.getRequestDispatcher(request.getContextPath() + "/admin/order/order.jsp").forward(request, response);
break;
case "category":
//若code是order时,跳转到订单管理界面
request.getRequestDispatcher(request.getContextPath() + "/admin/category/category.jsp").forward(request, response);
break;
}
}

//查询单个
public void findOneById(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* code的值:user、product、order
* 1.若code是user时,通过会员编号查询会员及拥有的订单信息


项目链接:
https://javayms.github.io?id=271023491103200ye
https://javayms.pages.dev?id=271023491103200ye