基于javaweb和mysql的ssm网上商城系统(java+ssm+jsp+mysql)
·
基于javaweb和mysql的ssm网上商城系统(java+ssm+jsp+mysql)
私信源码获取及调试交流
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于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 等等。
return "/admin/good_add.jsp";
}
/**
* 产品添加
*
* @return
* @throws Exception
*/
@RequestMapping("/goodSave")
public String goodSave(Goods good, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
good.setCover(UploadUtil.upload(file));
goodService.add(good);
return "redirect:goodList?flag=3&page="+page;
}
/**
* 产品更新
*
* @return
*/
@RequestMapping("/goodEdit")
public String goodEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 3);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("colorList", skuService.getColorList());
request.setAttribute("sizeList", skuService.getSizeList());
request.setAttribute("good", goodService.get(id));
return "/admin/good_edit.jsp";
}
/**
* 产品更新
*
* @return
* @throws Exception
*/
@RequestMapping("/goodUpdate")
public String goodUpdate(Goods good, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
if (Objects.nonNull(file) && !file.isEmpty()) {
good.setCover(UploadUtil.upload(file));
}
/**
* 用户相关接口
*/
@Controller
@RequestMapping("/index")
public class UserController{
@Resource
private UserService userService;
@Resource
private OrderService orderService;
@Resource
private GoodService goodService;
@Resource
private TypeService typeService;
@Resource
private ShopcartService shopcartService;
@Resource
private SkuService skuService;
/**
* 用户注册
* @return
*/
@GetMapping("/register")
public String reg(Model model) {
model.addAttribute("flag", -1); // 注册页面
return "/index/register.jsp";
}
/**
* 用户注册
* @return
*/
@PostMapping("/register")
public String register(Users user, Model model){
if (user.getUsername().isEmpty()) {
model.addAttribute("msg", "用户名不能为空!");
return "/index/register.jsp";
}else if (userService.isExist(user.getUsername())) {
public String adminUpdate(Admins admin,
@RequestParam(required=false, defaultValue="1") int page) {
admin.setPassword(SafeUtil.encode(admin.getPassword()));
adminService.update(admin);
return "redirect:adminList?flag=6&page="+page;
}
/**
* 管理员删除
*
* @return
*/
@RequestMapping("/adminDelete")
public String adminDelete(Admins admin,
@RequestParam(required=false, defaultValue="1") int page) {
adminService.delete(admin);
return "redirect:adminList?flag=6&page="+page;
}
}
skuService.addSize(name);
}else {
skuService.addColor(name);
}
return "redirect:skuList?status="+status;
}
/**
* sku删除
*
* @return
*/
@RequestMapping("/skuDelete")
public String skuDelete(int id, int status) {
if(status > 0) {
skuService.deleteSize(id);
}else {
skuService.deleteColor(id);
}
return "redirect:skuList?status="+status;
}
/**
* 产品列表
*
* @return
*/
@RequestMapping("/goodList")
public String goodList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 3);
request.setAttribute("page", page);
request.setAttribute("status", status);
request.setAttribute("goodList", goodService.getList(status, page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, goodService.getTotal(status), page, rows));
return "/admin/good_list.jsp";
}
/**
* 产品添加
*
* @return
*/
}
/**
* 前台相关接口
*/
@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
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
* 首页
* @return
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
request.setAttribute("flag", -1);
List<Types> typeList = typeService.getList();
request.setAttribute("typeList", typeList);
List<Map<String, Object>> dataList = new ArrayList<>();
for(Types type : typeList) {
Map<String, Object> map = new HashMap<>();
map.put("type", type);
map.put("goodList", goodService.getListByType(type.getId(), 1, 8)); // 取前8个
dataList.add(map);
}
request.setAttribute("dataList", dataList);
return "/index/index.jsp";
}
/**
* 推荐列表
* @return
*/
@RequestMapping("/top")
public String tops(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {
request.setAttribute("flag", typeid==2 ? 7 : 8);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("goodList", goodService.getList(typeid, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotal(typeid), page, rows));
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));
* @param i
* @return
*/
private static String packPageItem(String url, String params, int page, int i) {
StringBuilder pageBuilder = new StringBuilder();
if (i == page) {
pageBuilder.append("<a class='on'>").append(i).append("</a>");
}else{
pageBuilder.append("<a class='num' title='第").append(i).append("页' href='").append(url).append("?").append("page=").append(i)
.append(params).append("'>");pageBuilder.append(i).append("</a>");
}
return pageBuilder.toString();
}
/**
* 获取分页代码
* @param total 总记录数
* @param page 当前页面
* @param size 每页数量
* @return
*/
public static String getPageTool(HttpServletRequest request, long total, int page, int size){
long pages = total % size ==0 ? total/size : total /size + 1;
pages = pages==0 ? 1 : pages;
String url = request.getRequestURL().toString();
StringBuilder queryString = new StringBuilder();
Enumeration<String> enumeration = request.getParameterNames();
try { // 拼装请求参数
while (enumeration.hasMoreElements()) {
String element = (String) enumeration.nextElement();
if(!element.contains("page")) { // 跳过page参数
queryString.append("&").append(element).append("=").append(java.net.URLEncoder.encode(request.getParameter(element),"UTF-8"));
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 拼装分页代码
StringBuilder buf = new StringBuilder();
buf.append("<div style='text-align:center;'>\n");
if (page <= 1) {
buf.append("<a class='btn btn-info' disabled >首页</a>\n");
}else{
buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(1).append(queryString).append("'>首页</a>\n");
}
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
request.setAttribute("flag", -1);
List<Types> typeList = typeService.getList();
request.setAttribute("typeList", typeList);
List<Map<String, Object>> dataList = new ArrayList<>();
for(Types type : typeList) {
Map<String, Object> map = new HashMap<>();
map.put("type", type);
map.put("goodList", goodService.getListByType(type.getId(), 1, 8)); // 取前8个
dataList.add(map);
}
request.setAttribute("dataList", dataList);
return "/index/index.jsp";
}
/**
* 推荐列表
* @return
*/
@RequestMapping("/top")
public String tops(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {
request.setAttribute("flag", typeid==2 ? 7 : 8);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("goodList", goodService.getList(typeid, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotal(typeid), page, rows));
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) {
}
/**
* 获取分页代码
* @param total 总记录数
* @param page 当前页面
* @param size 每页数量
* @return
*/
public static String getPageTool(HttpServletRequest request, long total, int page, int size){
long pages = total % size ==0 ? total/size : total /size + 1;
pages = pages==0 ? 1 : pages;
String url = request.getRequestURL().toString();
StringBuilder queryString = new StringBuilder();
Enumeration<String> enumeration = request.getParameterNames();
try { // 拼装请求参数
while (enumeration.hasMoreElements()) {
String element = (String) enumeration.nextElement();
if(!element.contains("page")) { // 跳过page参数
queryString.append("&").append(element).append("=").append(java.net.URLEncoder.encode(request.getParameter(element),"UTF-8"));
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 拼装分页代码
StringBuilder buf = new StringBuilder();
buf.append("<div style='text-align:center;'>\n");
if (page <= 1) {
buf.append("<a class='btn btn-info' disabled >首页</a>\n");
}else{
buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(1).append(queryString).append("'>首页</a>\n");
}
if (page <= 1) {
buf.append("<a class='btn btn-info' disabled >上一页</a>\n");
}else {
buf.append("<a class='btn btn-info' href='").append(url).append("?page=").append(page>1 ? page-1 : 1).append(queryString).append("'>上一页</a>\n");
}
buf.append("<h2 style='display:inline;'>[").append(page).append("/").append(pages).append("]</h2>\n");
buf.append("<h2 style='display:inline;'>[").append(total).append("]</h2>\n");
if (page >= pages) {
private SkuService skuService;
/**
* 首页
* @return
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
request.setAttribute("flag", -1);
List<Types> typeList = typeService.getList();
request.setAttribute("typeList", typeList);
List<Map<String, Object>> dataList = new ArrayList<>();
for(Types type : typeList) {
Map<String, Object> map = new HashMap<>();
map.put("type", type);
map.put("goodList", goodService.getListByType(type.getId(), 1, 8)); // 取前8个
dataList.add(map);
}
request.setAttribute("dataList", dataList);
return "/index/index.jsp";
}
/**
* 推荐列表
* @return
*/
@RequestMapping("/top")
public String tops(int typeid, @RequestParam(required=false, defaultValue="1")int page, HttpServletRequest request) {
request.setAttribute("flag", typeid==2 ? 7 : 8);
request.setAttribute("typeList", typeService.getList());
request.setAttribute("goodList", goodService.getList(typeid, page, rows));
request.setAttribute("pageHtml", PageUtil.getPageHtml(request, goodService.getTotal(typeid), page, rows));
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";
user.setPassword(password);
return "/index/index"; // 注册成功后转去登录
}
}
/**
* 用户登录
* @return
*/
@GetMapping("/login")
public String log() {
return "/index/index";
}
/**
* 用户登录
* @return
*/
@PostMapping("/login")
public String login(@RequestParam(required=false, defaultValue="0")int flag, Users user, HttpSession session, Model model) {
model.addAttribute("typeList", typeService.getList());
if(flag==-1) {
flag = 6; // 登录页面
return "/index/index";
}
if(userService.checkUser(user.getUsername(), user.getPassword())){
Users loginUser = userService.get(user.getUsername());
session.setAttribute("user", loginUser);
// 还原购物车数量
session.setAttribute("total", shopcartService.getTotal(loginUser.getId()));
return "redirect:index";
} else {
model.addAttribute("msg", "用户名或密码错误!");
return "/index/index";
}
}
/**
* 注销登录
* @return
*/
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.removeAttribute("user");
session.removeAttribute("order");
return "/index/index";
}
/**
* 查看购物车
* @return
@RequestMapping("/typeList")
public String typeList(HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("typeList", typeService.getList());
return "/admin/type_list.jsp";
}
/**
* 类目添加
*
* @return
*/
@RequestMapping("/typeAdd")
public String typeAdd(HttpServletRequest request) {
request.setAttribute("flag", 1);
return "/admin/type_add.jsp";
}
/**
* 类目添加
*
* @return
* @throws Exception
*/
@RequestMapping("/typeSave")
public String typeSave(Types type, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
type.setCover(UploadUtil.upload(file));
typeService.add(type);
return "redirect:typeList?flag=1&page="+page;
}
/**
* 类目更新
*
* @return
*/
@RequestMapping("/typeEdit")
public String typeEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("type", typeService.get(id));
return "/admin/type_edit.jsp";
}
/**
* 类目更新
*
* @return
* @throws Exception
*/
@RequestMapping("/typeUpdate")
}
/**
* sku列表
*
* @return
*/
@RequestMapping("/skuList")
public String skuList(@RequestParam(required=false, defaultValue="0")byte status, HttpServletRequest request) {
request.setAttribute("flag", 2);
request.setAttribute("status", status);
request.setAttribute("skuList", status>0 ? skuService.getSizeList() : skuService.getColorList());
return "/admin/sku_list.jsp";
}
/**
* sku添加
*
* @return
*/
@RequestMapping("/skuSave")
public String skuSave(String name, int status) {
if(status > 0) {
skuService.addSize(name);
}else {
skuService.addColor(name);
}
return "redirect:skuList?status="+status;
}
/**
* sku删除
*
* @return
*/
@RequestMapping("/skuDelete")
public String skuDelete(int id, int status) {
if(status > 0) {
skuService.deleteSize(id);
}else {
skuService.deleteColor(id);
}
return "redirect:skuList?status="+status;
}
}
userService.update(u); // 更新数据库
session.setAttribute("user", u); // 更新session
model.addAttribute("msg", "密码修改成功!");
return "redirect:logout";
}else {
model.addAttribute("msg", "原密码错误!");
}
}
return "/index/index";
}
}
/**
* 分页工具类
*/
public class PageUtil {
/**
* 获取分页代码
* @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()) {
*/
@RequestMapping("/typeSave")
public String typeSave(Types type, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
type.setCover(UploadUtil.upload(file));
typeService.add(type);
return "redirect:typeList?flag=1&page="+page;
}
/**
* 类目更新
*
* @return
*/
@RequestMapping("/typeEdit")
public String typeEdit(int id, HttpServletRequest request) {
request.setAttribute("flag", 1);
request.setAttribute("type", typeService.get(id));
return "/admin/type_edit.jsp";
}
/**
* 类目更新
*
* @return
* @throws Exception
*/
@RequestMapping("/typeUpdate")
public String typeUpdate(Types type, MultipartFile file,
@RequestParam(required=false, defaultValue="1") int page) throws Exception {
if (Objects.nonNull(file) && !file.isEmpty()) {
type.setCover(UploadUtil.upload(file));
}
typeService.update(type);
return "redirect:typeList?flag=1&page="+page;
}
/**
* 类目删除
*
* @return
*/
@RequestMapping("/typeDelete")
public String typeDelete(Types type,
@RequestParam(required=false, defaultValue="1") int page) {
typeService.delete(type);
return "redirect:typeList?flag=1&page="+page;
}
/**
*/
@RequestMapping("/shopcart")
public String shopcart(Model model, HttpSession session) {
Users user = (Users) session.getAttribute("user");
if (user == null) {
model.addAttribute("msg", "请先登录!");
return "/index/index";
}
model.addAttribute("typeList", typeService.getList());
model.addAttribute("shopcartList", shopcartService.getList(user.getId()));
model.addAttribute("totalPrice", shopcartService.getTotalPrice(user.getId()));
return "/index/shopcart.jsp";
}
/**
* 购买
* @return
*/
@RequestMapping("/buy")
public @ResponseBody int buy(Shopcart shopcart, HttpSession session, Model model){
Users user = (Users) session.getAttribute("user");
if (user == null) {
return -111;
}
shopcart.setUserId(user.getId());
shopcart.setGood(goodService.get(shopcart.getGoodId()));
// 验证库存
// int stock = skuService.getStock(shopcart.getGoodId(), shopcart.getColorId(), shopcart.getSizeId());
// if(shopcart.getAmount() > stock) {
// model.addAttribute("msg", "商品 [ " + shopcart.getGood().getName() + " ] 库存不足! 当前库存只有: " + stock);
// }
return orderService.save(Arrays.asList(shopcart), user);
}
/**
* 购买
* @return
*/
@RequestMapping("/cart")
public @ResponseBody int cart(Shopcart shopcart, HttpSession session, Model model){
Users user = (Users) session.getAttribute("user");
/**
* 后台相关接口
*/
@Controller
@RequestMapping("/admin")
public class AdminController {
private static final int rows = 10;
@Autowired
private AdminService adminService;
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
@Autowired
private GoodService goodService;
@Autowired
private TopService topService;
@Autowired
private TypeService typeService;
/**
* 前台相关接口
*/
@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
*/
@RequestMapping("/index")
public String index(HttpServletRequest request){
request.setAttribute("flag", -1);
List<Types> typeList = typeService.getList();





更多推荐


所有评论(0)