基于javaweb+mysql的ssm宠物商城系统(java+ssm+jsp+jquery+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM宠物商城系统(java+ssm+jsp+jquery+mysql)
项目介绍
该系统主要分为前台和后台两大功能模块,共包含两个角色:用户、管理员。
具体的系统功能如下: 1.前台功能 前台首页、宠物商品展示、宠物搜索、宠物分类查找、宠物详情、网站公告、特价商品、推荐商品、全部商品、查看更多商品、加入购物车、确认订购信息、修改购物车、 支付结算、清空购物车、提交订单、用户注册、用户登陆、用户中心、修改个人信息、修改密码、我的订单、订单详情、用户留言、我的留言等功能。 2.后台功能 后台系统登陆、用户信息管理、管理员管理、宠物分类管理、宠物信息管理、订单信息管理、订单明细管理、用户留言管理、新闻公告管理等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目; 6.数据库:MySql 5.7/8.0等版本均可;
技术栈
后台框架:Spring、SpringMVC、MyBatis UI界面:JSP、jQuery 数据库:MySQL
使用说明
-
使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
-
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
Users user = (Users) session.getAttribute("user");
if (user == null) {
model.addAttribute("msg", "请登录后查看订单!");
return "/index/login.jsp";
List<Orders> orderList = orderService.getListByUserid(user.getId());
if (orderList!=null && !orderList.isEmpty()) {
for(Orders order : orderList){
order.setItemList(orderService.getItemList(order.getId()));
model.addAttribute("orderList", orderList);
return "/index/order.jsp";
/**
* 个人信息
@RequestMapping("/cart")
public String cart(Model model) {
model.addAttribute("typeList", typeService.getList());
return "/index/cart.jsp";
/**
* 购买
* @return
*/
@RequestMapping("/buy")
public @ResponseBody String buy(int goodid, HttpSession session){
Goods goods = goodService.get(goodid);
if (goods .getStock() <= 0) { // 库存不足
return "empty";
@RequestMapping("/login")
public String login(Admins admin, HttpServletRequest request, HttpSession session) {
if (adminService.checkUser(admin.getUsername(), admin.getPassword())) {
session.setAttribute("username", admin.getUsername());
return "redirect:index";
request.setAttribute("msg", "用户名或密码错误!");
return "/admin/login.jsp";
/**
* 退出
* @return
*/
@RequestMapping("/orderDelete")
public String orderDelete(int id, byte status,
@RequestParam(required=false, defaultValue="1") int page) {
orderService.delete(id);
return "redirect:orderList?flag=1&status="+status+"&page="+page;
/**
* 顾客管理
* @return
*/
@RequestMapping("/userList")
* @return
*/
@RequestMapping("/register")
public String register(@RequestParam(required=false, defaultValue="0")int flag, Users user, Model model){
model.addAttribute("typeList", typeService.getList());
if(flag==-1) {
model.addAttribute("flag", 5); // 注册页面
return "/index/register.jsp";
if (user.getUsername().isEmpty()) {
model.addAttribute("msg", "用户名不能为空!");
return "/index/register.jsp";
good.setCover(UploadUtil.fileUpload(cover));
good.setImage1(UploadUtil.fileUpload(image1));
good.setImage2(UploadUtil.fileUpload(image2));
goodService.add(good);
return "redirect:goodList?flag=3&page="+page;
/**
* 产品更新
* @return
*/
@RequestMapping("/goodEdit")
public String goodEdit(int id, HttpServletRequest request) {
model.addAttribute("orderList", orderList);
return "/index/order.jsp";
/**
* 个人信息
* @return
*/
@RequestMapping("/my")
public String my(Users user, HttpSession session, Model model){
model.addAttribute("flag", 4);
model.addAttribute("typeList", typeService.getList());
* @return
*/
@RequestMapping("/pay")
public String pay(Orders order, Model model) {
model.addAttribute("typeList", typeService.getList());
orderService.pay(order);
return "redirect:payok?orderid="+order.getId();
/**
* 支付成功
* @return
*/
@RequestMapping("/payok")
int paytype = order.getPaytype();
if(paytype == Orders.PAYTYPE_WECHAT || paytype == Orders.PAYTYPE_ALIPAY) {
request.setAttribute("msg", "订单["+orderid+"]支付成功");
}else {
request.setAttribute("msg", "订单["+orderid+"]货到付款");
return "/index/payok.jsp";
/**
* 查看订单
* @return
*/
@RequestMapping("/adminList")
public String adminList(HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
request.setAttribute("flag", 5);
request.setAttribute("adminList", adminService.getList(page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, adminService.getTotal(), page, rows));
return "/admin/admin_list.jsp";
/**
* 管理员修改自己密码
* @return
*/
@RequestMapping("/adminRe")
public String adminRe(HttpServletRequest request, HttpSession session) {
@RequestMapping("/userSave")
public String userSave(Users user, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
if (userService.isExist(user.getUsername())) {
request.setAttribute("msg", "用户名已存在!");
return "/admin/user_add.jsp";
userService.add(user);
return "redirect:userList?flag=2&page="+page;
/**
* 顾客密码重置页面
* @return
*/
@RequestMapping("/userRe")
public String userRe(int id, HttpServletRequest request) {
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
request.setAttribute("adminList", adminService.getList(page, rows));
request.setAttribute("pageTool", PageUtil.getPageTool(request, adminService.getTotal(), page, rows));
return "/admin/admin_list.jsp";
/**
* 管理员修改自己密码
* @return
*/
@RequestMapping("/adminRe")
public String adminRe(HttpServletRequest request, HttpSession session) {
request.setAttribute("flag", 5);
public class AdminInterceptor extends HandlerInterceptorAdapter{
/**
* 检测登录状态
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String uri = request.getRequestURI();
if(uri.contains("css/") || uri.contains("js/") || uri.contains("img/")
|| uri.contains("login") || uri.contains("logout")) {
return true; // 不拦截路径
Object username = request.getSession().getAttribute("username");
if (Objects.nonNull(username) && !username.toString().trim().isEmpty()) {
return true; // 登录验证通过
*/
public class AdminInterceptor extends HandlerInterceptorAdapter{
/**
* 检测登录状态
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String uri = request.getRequestURI();
if(uri.contains("css/") || uri.contains("js/") || uri.contains("img/")
}else {
request.setAttribute("msg", "原密码错误!");
return "/admin/admin_reset.jsp";
/**
* 管理员添加
* @return
*/
@RequestMapping("/adminSave")
public String adminSave(Admins admin, HttpServletRequest request,
@RequestParam(required=false, defaultValue="1") int page) {
if (adminService.isExist(admin.getUsername())) {
request.setAttribute("msg", "用户名已存在!");
return "/admin/admin_add.jsp";
@RequestParam(required=false, defaultValue="1") int page) {
userService.delete(user);
return "redirect:userList?flag=2&page="+page;
/**
* 产品列表
* @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);
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());