基于javaweb的SSM网上商城系统(java+ssm+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

210023032402

220023032402

230023032402

240023032402

250023032402

基于javaweb的SSM网上商城系统(java+ssm+jsp+mysql)

一、项目简述功能

javaweb 网上商城系统,前台+后台管理,用户注册,登录,上哦展示,分组展示,搜索,收货地址管理,购物车管理,添加,购买,个人信息修改。订单查询等等,后台商品管理,分类管理,库存管理,订单管理,用户管理,信息修改等等.

二、项目运行

环境配置: Jdk1.8 + Tomcats . 5 + mysql + Eclispe ( IntelliJ IDEA ,Eclispe , MyEclispe , sts 都支持)

项目技术: JSP + Spring + SpringMVC + MyBatis + html + cSS + Javascript + JQuery + Ajax 等等。

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
		}
if (page >= pages) {
buf.append("<a class='btn btn-info' disabled >尾页</a>\n");
}else {
buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(pages).append(queryString).append("'>尾页</a>\n");
}
buf.append("<input type='text' class='form-control' style='display:inline;width:60px;' value=''/>");
buf.append("<a class='btn btn-info' href='javascript:void(0);' onclick='location.href=\"").append(url).append("?page=").append("\"+(this.previousSibling.value)+\"").append(queryString).append("\"'>GO</a>\n");
buf.append("</div>\n");
return buf.toString();
}

}
package com.controller;





/**
* 前台相关接口
*/
@Controller
@RequestMapping("/index")
public class IndexController{

private static final int rows = 8; // 默认每页数量

@Autowired
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
	return "/index/goods.jsp";
}

/**
* 商品列表
* @return
*/
@RequestMapping("/goods")
public String goods(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request){
request.setAttribute("flag", typeid);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("topList", topService.getList(Tops.TYPE_SUPPER, 1, 4));
if (typeid > 0) {
request.setAttribute("type", typeService.get(typeid));
}
request.setAttribute("goodList", goodService.getListByType(typeid, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByType(typeid), page, rows));
return "/index/goods.jsp";
}

/**
* 商品详情
* @return
*/
@RequestMapping("/detail")
public String detail(int goodid, HttpServletRequest request){
request.setAttribute("typeList", typeService.getList());
request.setAttribute("topList", topService.getList(Tops.TYPE_SUPPER, 1, 4));
Goods good = goodService.get(goodid);
request.setAttribute("good", good);
request.setAttribute("type", typeService.get(good.getTypeId()));
request.setAttribute("colorList", skuService.getColorList(goodid));
request.setAttribute("sizeList", skuService.getSizeList(goodid));
return "/index/detail.jsp";
}

/**
* 搜索
* @return
*/
@RequestMapping("/search")
public String search(String name, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {
if (Objects.nonNull(name) && !name.trim().isEmpty()) {
request.setAttribute("goodList", goodService.getListByName(name, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByName(name), page, rows));
}
request.setAttribute("typeList", typeService.getList());
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
	public String detail(int goodid, HttpServletRequest request){
request.setAttribute("typeList", typeService.getList());
request.setAttribute("topList", topService.getList(Tops.TYPE_SUPPER, 1, 4));
Goods good = goodService.get(goodid);
request.setAttribute("good", good);
request.setAttribute("type", typeService.get(good.getTypeId()));
request.setAttribute("colorList", skuService.getColorList(goodid));
request.setAttribute("sizeList", skuService.getSizeList(goodid));
return "/index/detail.jsp";
}

/**
* 搜索
* @return
*/
@RequestMapping("/search")
public String search(String name, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {
if (Objects.nonNull(name) && !name.trim().isEmpty()) {
request.setAttribute("goodList", goodService.getListByName(name, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotalByName(name), page, rows));
}
request.setAttribute("typeList", typeService.getList());
return "/index/goods.jsp";
}

/**
* 查询库存
* @param goodid
* @param colorid
* @param sizeid
* @return
*/
@GetMapping("/stock")
public @ResponseBody int stock(int goodid, int colorid, int sizeid) {
return skuService.getStock(goodid, colorid, sizeid);
}

}
package com.controller;




/**
* 后台登录验证拦截器
*/
public class AdminInterceptor extends HandlerInterceptorAdapter{
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
 * 获取分页代码
* @param total 总记录数
* @param page 当前页面
* @param size 每页数量
* @return
*/
public static String getPageHtml(HttpServletRequest request, long total, int page, int size){
if (total <= 0) {
return null;
}
// 计算总页数
int pages = (int) (total % size ==0 ? total/size : total /size + 1);
pages = pages == 0 ? 1 : pages;
// 请求地址
String url = request.getRequestURL().toString();
// 请求参数
StringBuilder paramBuilder = new StringBuilder();
Enumeration<String> params = request.getParameterNames();
while (params.hasMoreElements()) {
String param = params.nextElement();
if(param.indexOf("page") > -1) {
continue;
}
paramBuilder.append("&").append(param).append("=").append(request.getParameter(param));
}

// 分页字符串
StringBuilder pageBuilder = new StringBuilder();
pageBuilder.append("<div class='page text-center clearfix'><span class='pro_link'>");
// 上一页
if (page <= 1) { // 如果已经是第一页, 上一页按钮disabled
pageBuilder.append("<a href='javascript:;' title='已是首页'><<</a>");
pageBuilder.append("<a href='javascript:;' title='已是首页'><</a>");
}else{
pageBuilder.append("<a title='首页' href='").append(url).append("?").append("page=").append(page-1)
.append(paramBuilder).append("'><<</a>");
pageBuilder.append("<a title='上一页' href='").append(url).append("?").append("page=").append(page-1)
.append(paramBuilder).append("'><</a>");
}
// 中间数字页码
if (pages <= 7) { // 全部显示
for (int i = 1; i <= pages; i++) {
pageBuilder.append(packPageItem(url, paramBuilder.toString(), page, i));
}
}else{ // 显示部分
if (page<4 || page>pages-3) { // 1 2 3 ... pages-2 pages-1 pages
pageBuilder.append(packPageItem(url, paramBuilder.toString(), page, 1));
pageBuilder.append(packPageItem(url, paramBuilder.toString(), page, 2));
pageBuilder.append(packPageItem(url, paramBuilder.toString(), page, 3));
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
		session.setAttribute("total", shopcartService.getTotal(user.getId()));
// 跳转支付
return "redirect:topay?orderid="+orderid;
}

model.addAttribute("msg", "出了点问题");
return shopcart(model, session);
}

/**
* 支付页面
* @return
*/
@RequestMapping("/topay")
public String topay(int orderid, ServletRequest request, HttpSession session) {
Users user = (Users) session.getAttribute("user");
if (user == null) {
request.setAttribute("msg", "请先登录!");
return "/index/index";
}
request.setAttribute("typeList", typeService.getList());
request.setAttribute("order", orderService.get(orderid));
return "/index/pay.jsp";
}

/**
* 支付(模拟)
* @return
*/
@RequestMapping("/pay")
public String pay(Orders order, ServletRequest request, HttpSession session) {
Users user = (Users) session.getAttribute("user");
if (user == null) {
request.setAttribute("msg", "请先登录!");
return "/index/index";
}
// 模拟支付
orderService.pay(order);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("order", orderService.get(order.getId()));
request.setAttribute("msg", "支付成功! 即将跳转到订单列表");
return "/index/pay.jsp";
}
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
	}

}
package com.controller;





/**
* 前台相关接口
*/
@Controller
@RequestMapping("/index")
public class IndexController{

private static final int rows = 8; // 默认每页数量

@Autowired
private TopService topService;
@Autowired
private GoodService goodService;
@Autowired
private TypeService typeService;
@Autowired
private SkuService skuService;


/**
* 首页
* @return
*/


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