基于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文件;
-
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
model.setViewName("system/welcome");
return model;
/**
* 系统500错误页面
* @param model
* @return
*/
@RequestMapping(value="/operation_error",method=RequestMethod.GET)
public ModelAndView operationError(ModelAndView model){
model.setViewName("errors/500");
return model;
/**
* 登陆页面
* @param model
ret.put("msg", "请填写正确的角色信息!");
return ret;
if(StringUtils.isEmpty(role.getName())){
ret.put("type", "error");
ret.put("msg", "请填写角色名称!");
return ret;
if(roleService.add(role) <= 0){
ret.put("type", "error");
ret.put("msg", "角色添加失败,请联系管理员!");
return ret;
ret.put("type", "success");
ret.put("msg", "角色添加成功!");
return ret;
} catch (Exception e) {
// TODO: handle exception
ret.put("type", "error");
ret.put("msg", "该角色下存在权限或者用户信息,不能删除!");
return ret;
ret.put("type", "success");
ret.put("msg", "角色删除成功!");
return ret;
/**
* 获取所有的菜单信息
menuIds += authority.getMenuId() + ",";
if(!StringUtils.isEmpty(menuIds)){
menuIds = menuIds.substring(0,menuIds.length()-1);
List<Menu> userMenus = menuService.findListByIds(menuIds);
//把角色信息、菜单信息放到session中
request.getSession().setAttribute("admin", findByUsername);
request.getSession().setAttribute("role", role);
request.getSession().setAttribute("userMenus", userMenus);
ret.put("type", "success");
ret.put("msg", "登录成功!");
logService.add("用户名为{"+user.getUsername()+"},角色为{"+role.getName()+"}的用户登录成功!");
return ret;
/**
* 后台退出注销功能
if(StringUtils.isEmpty(cpacha)){
ret.put("type", "error");
ret.put("msg", "请填写验证码!");
return ret;
if(StringUtils.isEmpty(user.getUsername())){
ret.put("type", "error");
ret.put("msg", "请填写用户名!");
return ret;
if(StringUtils.isEmpty(user.getPassword())){
ret.put("type", "error");
ret.put("msg", "请填写密码!");
ret.put("msg", "删除失败,请联系管理员!");
return ret;
} catch (Exception e) {
// TODO: handle exception
ret.put("type", "error");
ret.put("msg", "该角色下存在权限或者用户信息,不能删除!");
return ret;
ret.put("type", "success");
ret.put("msg", "角色删除成功!");
return ret;
/**
* 获取所有的菜单信息
* @return
ret.put("type", "success");
ret.put("msg", "登录成功!");
logService.add("用户名为{"+user.getUsername()+"},角色为{"+role.getName()+"}的用户登录成功!");
return ret;
/**
* 后台退出注销功能
* @param request
* @return
*/
@RequestMapping(value="/logout",method=RequestMethod.GET)
HttpServletRequest request
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
Role role = (Role) request.getSession().getAttribute("role");
User user = (User) request.getSession().getAttribute("admin");
if(role.getId().equals(Long.valueOf("2"))) {
//如果是卖家角色, 只能看到自己的个人信息
queryMap.put("Id", user.getId());
queryMap.put("username", username);
queryMap.put("roleId", roleId);
queryMap.put("sex", sex);
@ResponseBody
public Map<String, Object> getList(Page page,
@RequestParam(name="username",required=false,defaultValue="") String username,
@RequestParam(name="roleId",required=false) Long roleId,
@RequestParam(name="sex",required=false) Integer sex,
HttpServletRequest request
){
Map<String, Object> ret = new HashMap<String, Object>();
Map<String, Object> queryMap = new HashMap<String, Object>();
Role role = (Role) request.getSession().getAttribute("role");
User user = (User) request.getSession().getAttribute("admin");
if(role.getId().equals(Long.valueOf("2"))) {
public Map<String, String> delete(String ids){
Map<String, String> ret = new HashMap<String, String>();
if(StringUtils.isEmpty(ids)){
ret.put("type", "error");
ret.put("msg", "选择要删除的数据!");
return ret;
if(ids.contains(",")){
ids = ids.substring(0,ids.length()-1);
if(userService.delete(ids) <= 0){
ret.put("type", "error");
ret.put("msg", "用户删除失败,请联系管理员!");
return ret;
ret.put("msg", "请填写角色名称!");
return ret;
if(roleService.edit(role) <= 0){
ret.put("type", "error");
ret.put("msg", "角色修改失败,请联系管理员!");
return ret;
ret.put("type", "success");
ret.put("msg", "角色修改成功!");
return ret;
/**
* 删除角色信息
* @param id
* @return
String generatorVCode = cpachaUtil.generatorVCode();
request.getSession().setAttribute(cpachaType, generatorVCode);
BufferedImage generatorRotateVCodeImage = cpachaUtil.generatorRotateVCodeImage(generatorVCode, true);
try {
ImageIO.write(generatorRotateVCodeImage, "gif", response.getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
角色role控制器:
/**
* 角色role控制器
*/
//将文件保存至指定目录
photo.transferTo(new File(savePath+filename));
}catch (Exception e) {
// TODO Auto-generated catch block
ret.put("type", "error");
ret.put("msg", "保存文件异常!");
e.printStackTrace();
return ret;
ret.put("type", "success");
ret.put("msg", "用户删除成功!");
ret.put("filepath",request.getServletContext().getContextPath() + "/resources/upload/" + filename );
return ret;
/**
* @param role
* @return
*/
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> add(Role role){
Map<String, String> ret = new HashMap<String, String>();
if(role == null){
ret.put("type", "error");
ret.put("msg", "请填写正确的角色信息!");
return ret;
if(StringUtils.isEmpty(role.getName())){
@RequestMapping(value="/add",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> add(User user){
Map<String, String> ret = new HashMap<String, String>();
if(user == null){
ret.put("type", "error");
ret.put("msg", "请填写正确的用户信息!");
return ret;
if(StringUtils.isEmpty(user.getUsername())){
ret.put("type", "error");
ret.put("msg", "请填写用户名!");
return ret;
if(StringUtils.isEmpty(user.getPassword())){
ret.put("type", "error");
ret.put("msg", "删除失败,请联系管理员!");
return ret;
} catch (Exception e) {
// TODO: handle exception
ret.put("type", "error");
ret.put("msg", "该角色下存在权限或者用户信息,不能删除!");
return ret;
ret.put("type", "success");
ret.put("msg", "角色删除成功!");
return ret;
/**
/**
* 后台退出注销功能
* @param request
* @return
*/
@RequestMapping(value="/logout",method=RequestMethod.GET)
public String logout(HttpServletRequest request){
HttpSession session = request.getSession();
session.setAttribute("admin", null);
session.setAttribute("role", null);
request.getSession().setAttribute("userMenus", null);
return "redirect:login";