项目名称
基于SSM框架的个性化眼镜线上销售系统

视频效果
基于SSM框架的个性化眼镜线上销售系统

项目地址:
https://download.csdn.net/download/m0_72180938/85716472

系统说明

系统主要包括前台和后台两部分,后台人员也就是商家管理员,主要有统计分析、留言管理、系统管理、商品的库存、订单、售后管理等主要功能模块。管理员主要负责维护基础处理的初始化,以及数据管理、功能管理等系统维护工作;前台人员即是普通用户人员,主要有注册登录、管理个人信息、进入首页、查看商品分类、加购商品、查看订单、留言以及售后管理等功能模块。

环境需要
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.数据库:MySql 5.7版本;
6.是否Maven项目:否;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis
  2. 前端:JSP+CSS+JavaScript+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
  2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
  3. 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;
  4. 运行项目,在浏览器中输入http://localhost:8080/ 登录

运行截图



















用户管理控制层:
package com.houserss.controller;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.houserss.common.Const;
import com.houserss.common.Const.Role;
import com.houserss.common.ServerResponse;
import com.houserss.pojo.User;
import com.houserss.service.IUserService;
import com.houserss.service.impl.UserServiceImpl;
import com.houserss.util.MD5Util;
import com.houserss.util.TimeUtils;
import com.houserss.vo.DeleteHouseVo;
import com.houserss.vo.PageInfoVo;

/**

  • Created by admin
    */
    @Controller
    @RequestMapping(“/user/”)
    public class UserController {
    @Autowired
    private IUserService iUserService;

    /**

    • 用户登录
    • @param username
    • @param password
    • @param session
    • @return
      */
      @RequestMapping(value = “login.do”,method = RequestMethod.POST)
      @ResponseBody
      public ServerResponse login(User user,String uvcode, HttpSession session){
      String code = (String)session.getAttribute(“validationCode”);
      if(StringUtils.isNotBlank(code)) {
      if(!code.equalsIgnoreCase(uvcode)) {
      return ServerResponse.createByErrorMessage(“验证码不正确”);
      }
      }
      ServerResponse response = iUserService.login(user.getUsername(),user.getPassword());
      if(response.isSuccess()){
      session.setAttribute(Const.CURRENT_USER,response.getData());
      }
      return response;
      }

}
管理员管理控制层:

package com.sxl.controller.admin;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.sxl.controller.MyController;

@Controller(“adminController”)
@RequestMapping(value = “/admin”)
public class AdminController extends MyController {

@RequestMapping(value = "/index")
public String frame(Model model, HttpServletRequest request)throws Exception {return "/admin/index";
}@RequestMapping(value = "/main")
public String main(Model model, HttpServletRequest request)throws Exception {return "/admin/main";
}@RequestMapping(value = "/tj1")
public String tj1(Model model, HttpServletRequest request)throws Exception {String sql="select DATE_FORMAT(insertDate,'%Y-%m-%d') dates,sum(allPrice) price from t_order order by DATE_FORMAT(insertDate,'%Y-%m-%d')  desc";List<Map> list = db.queryForList(sql);model.addAttribute("list", list);System.out.println(list);return "/admin/tj/tj1";
}@RequestMapping(value = "/password")
public String password(Model model, HttpServletRequest request)throws Exception {return "/admin/password";
}@RequestMapping(value = "/changePassword")
public ResponseEntity<String> loginSave(Model model,HttpServletRequest request,String oldPassword,String newPassword) throws Exception {Map admin = getAdmin(request);if(oldPassword.equals(admin.get("password").toString())){String sql="update t_admin set password=? where id=?";db.update(sql, new Object[]{newPassword,admin.get("id")});return renderData(true,"1",null);}else{return renderData(false,"1",null);}
}

}
修改密码业务逻辑:

package com.sxl.controller.admin;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.sxl.controller.MyController;

@Controller(“userController”)
@RequestMapping(value = “/user”)
public class UserController extends MyController {

@RequestMapping(value = "/index")
public String frame(Model model, HttpServletRequest request)throws Exception {return "/user/index";
}@RequestMapping(value = "/main")
public String main(Model model, HttpServletRequest request)throws Exception {return "/user/main";
}@RequestMapping(value = "/password")
public String password(Model model, HttpServletRequest request)throws Exception {return "/user/password";
}@RequestMapping(value = "/changePassword")
public ResponseEntity<String> loginSave(Model model,HttpServletRequest request,String oldPassword,String newPassword) throws Exception {Map user = getUser(request);if(oldPassword.equals(user.get("password").toString())){String sql="update t_user set password=? where id=?";db.update(sql, new Object[]{newPassword,user.get("id")});return renderData(true,"1",null);}else{return renderData(false,"1",null);}
}
@RequestMapping(value = "/mine")
public String mine(Model model, HttpServletRequest request)throws Exception {

Map user =getUser(request);Map map = db.queryForMap(“select * from t_user where id=?”,new Object[]{user.get(“id”)});model.addAttribute(“map”, map); return “/user/mine”;
}

@RequestMapping(value = "/mineSave")
public ResponseEntity<String> mineSave(Model model,HttpServletRequest request,Long id,String username,String password,String name,String gh,String mobile) throws Exception{int result = 0;String sql="update t_user set name=?,gh=?,mobile=? where id=?";result = db.update(sql, new Object[]{name,gh,mobile,id});if(result==1){return renderData(true,"操作成功",null);}else{return renderData(false,"操作失败",null);}
}
}

通用管理模块:
package com.sxl.controller;

import java.nio.charset.Charset;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;

import com.sxl.util.JacksonJsonUtil;
import com.sxl.util.StringUtil;
import com.sxl.util.SystemProperties;

public class BaseController {
public static final Long EXPIRES_IN = 1000 * 3600 * 24 * 1L;// 1天

@Autowired
private SystemProperties systemProperties;/*** 获得配置文件内容*/
public String getConfig(String key) {return systemProperties.getProperties(key);
}/*** 返回服务器地址 like http://192.168.1.1:8441/UUBean/*/
public String getHostUrl(HttpServletRequest request) {String hostName = request.getServerName();Integer hostPort = request.getServerPort();String path = request.getContextPath();if (hostPort == 80) {return "http://" + hostName + path + "/";} else {return "http://" + hostName + ":" + hostPort + path + "/";}
}/**** 获取当前的website路径 String*/
public static String getWebSite(HttpServletRequest request) {String returnUrl = request.getScheme() + "://"+ request.getServerName();if (request.getServerPort() != 80) {returnUrl += ":" + request.getServerPort();}returnUrl += request.getContextPath();return returnUrl;
}/*** 初始化HTTP头.* * @return HttpHeaders*/
public HttpHeaders initHttpHeaders() {HttpHeaders headers = new HttpHeaders();MediaType mediaType = new MediaType("text", "html",Charset.forName("utf-8"));headers.setContentType(mediaType);return headers;
}/*** 返回 信息数据* * @param status* @param msg* @return*/
public ResponseEntity<String> renderMsg(Boolean status, String msg) {if (StringUtils.isEmpty(msg)) {msg = "";}String str = "{\"status\":\"" + status + "\",\"msg\":\"" + msg + "\"}";ResponseEntity<String> responseEntity = new ResponseEntity<String>(str,initHttpHeaders(), HttpStatus.OK);return responseEntity;
}/*** 返回obj数据* * @param status* @param msg* @param obj* @return*/
public ResponseEntity<String> renderData(Boolean status, String msg,Object obj) {if (StringUtils.isEmpty(msg)) {msg = "";}StringBuffer sb = new StringBuffer();sb.append("{");sb.append("\"status\":\"" + status + "\",\"msg\":\"" + msg + "\",");sb.append("\"data\":" + JacksonJsonUtil.toJson(obj) + "");sb.append("}");ResponseEntity<String> responseEntity = new ResponseEntity<String>(sb.toString(), initHttpHeaders(), HttpStatus.OK);return responseEntity;
}/**** 获取IP(如果是多级代理,则得到的是一串IP值)*/
public static String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}if (ip != null && ip.length() > 0) {String[] ips = ip.split(",");for (int i = 0; i < ips.length; i++) {if (!"unknown".equalsIgnoreCase(ips[i])) {ip = ips[i];break;}}}return ip;
}/*** 国际化获得语言内容* * @param key*            语言key* @param args* @param argsSplit* @param defaultMessage* @param locale* @return*/
public static String getLanguage(String key, String args, String argsSplit,String defaultMessage, String locale) {String language = "zh";String contry = "cn";String returnValue = defaultMessage;if (!StringUtil.isEmpty(locale)) {try {String[] localeArray = locale.split("_");language = localeArray[0];contry = localeArray[1];} catch (Exception e) {}}try {ResourceBundle resource = ResourceBundle.getBundle("lang.resource",new Locale(language, contry));returnValue = resource.getString(key);if (!StringUtil.isEmpty(args)) {String[] argsArray = args.split(argsSplit);for (int i = 0; i < argsArray.length; i++) {returnValue = returnValue.replace("{" + i + "}",argsArray[i]);}}} catch (Exception e) {}return returnValue;
}

}
源码获取:
大家点赞、收藏、关注、评论啦 、查看

基于SSM框架的个性化眼镜线上销售系统+论文第三稿+已降重+包安装配置相关推荐

  1. ssm圆梦小学的英语线上考试系统毕业设计源码141505

    SSM圆梦小学的英语线上考试系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克 ...

  2. (附源码)ssm圆梦小学的英语线上考试系统 毕业设计 141505

    SSM圆梦小学的英语线上考试系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克 ...

  3. (附源码)ssm圆梦小学的英语线上考试系统 毕业设计141505

    SSM圆梦小学的英语线上考试系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克 ...

  4. 基于JAVA古惠农产品线上销售系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA古惠农产品线上销售系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA古惠农产品线上销售系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S ...

  5. 实训代码java毕业设计_基于SSM框架的王者荣耀游戏攻略系统

    基于SSM框架的王者荣耀游戏攻略系统mysql数据库创建语句 基于SSM框架的王者荣耀游戏攻略系统oracle数据库创建语句 基于SSM框架的王者荣耀游戏攻略系统sqlserver数据库创建语句 基于 ...

  6. java计算机毕业设计古惠农产品线上销售系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计古惠农产品线上销售系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计古惠农产品线上销售系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目 ...

  7. java mysql SSM实现的校园门户平台网站系统源码+含开题报告与需求分析+包安装配置

    下载地址:https://download.csdn.net/download/ouyangxiaobai123/22174377 项目介绍: java mysql SSM实现的校园门户平台网站系统源 ...

  8. 基于ssm框架实现的在线电影订票系统

    一.项目简介 本项目是一套基于ssm在线电影订票系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者. 包含:项目源码.数据库脚本等,该项目附带全部源码可作为毕设使用. 项 ...

  9. 基于ssm框架的汽车租赁租车行系统

    汽车租赁租车行系统采用ssm框架和java中流行的MVC三层设计模式和eclipse编辑器.MySQL数据库设计并实现的 .本汽车租赁管理系统主要包括系统用户管理模块.站内新闻管理模块.车辆信息管理. ...

最新文章

  1. QS世界大学最新排名公布:清华超过耶鲁,MIT仍居榜首,12所中国高校跻身百强...
  2. mysql获取两个表中日期字段的最小差值
  3. 使用nginx动静分离后,druid被拦截的解决方法
  4. Python Virtualenv Anaconda
  5. leetcode206:反转链表
  6. 图形化界面客户端连接phoenix操作hbase
  7. drop sqlite 多个表_SQLite简介与安装
  8. 即时配送的ETA问题之亿级样本特征构造实践
  9. 自定义按键_NS推送10.0.0版本更新 新增按键自定义和数据转移功能
  10. Viliv N5 GPS安装及使用方法
  11. Vue-cli使用prerender-spa-plugin插件预渲染和配置cdn
  12. psd.js 解析PSD文件
  13. 【移动安全基础篇】——02、APP内付破解
  14. 【APP源码】呆萌助手工具箱android源码
  15. linux 显卡 卡死,linux服务器显卡崩溃解决方案
  16. 图片1920x1080分辨率怎么调 ?图片如何修改分辨率?
  17. prezi如何安装与教育账号注册激活
  18. ECCV 2022 | 新方案: 先剪枝再蒸馏
  19. 巨控GRM110无线通信模块
  20. 查找数组中重复的数字

热门文章

  1. async/await用法详解
  2. 微信小程序动画(七):让页面动起来
  3. win10 C盘扩容折腾记录
  4. 了解华为云,了解云计算
  5. mysql中output_数据库中使用output值和return值:
  6. C# 收据编号由公司代码+操作员代码+年份+4位流水号
  7. C语言一维数据中2[arry]问题
  8. python学习教程16-数据分组,取前三的值
  9. 【Python】之安装 python 模块包
  10. 学Java自学还是报班?