项目名称

java ssm框架的点歌系统的设计与实现源码

下载地址

下载地址

系统说明

4.2 系统功能

4.2.1 登录与注册功能

系统的登录分为了前台登录和后台登录两个模块,都分别处在不同的界面上的,共同的特点就是用户分别键入用户名密码后提交给系统进行处理,如果登录成功后即可跳转界面,登录不通过的话就会进行错误提示。

4.2.2 新闻公告功能

系统需要有新闻公告的查看以及后台的管理功能主要是为了提供给系统前台用户以音乐咨询的查询,这样可以使得系统更加专业化,信息更加全面化而不是单一的音乐播放这一功能。

4.2.3 音乐分类功能

一个音乐点歌网站是拥有成千上万的音乐单曲的,如果不提供分类功能的话对于没有选择性的用户来说如何对这么多的音乐进行选择是一件十分痛苦的事情。

4.2.4 音乐在线播放功能

系统既然是web系统就需要提供音乐的在线播放功能而不是仅仅提供音乐的下载,一个是方便了用户在线的音乐收听还可以留住用户在系统上的使用时间。

4.2.5 留言管理功能

系统的前台需要有留言功能是非常关键的,通过系统用户的在线交流可以增加用户之间的互动性让系统用户更加对系统进行依赖和喜爱。

4.3系统数据库设计

数据库是本系统的核心和基础。数据库设计将直接决定一个程序的好坏,是一个非常重要的环节,如果把一个项目比喻为一栋建筑,那么数据库就是这栋建筑的地基,地基好坏将直接决定这栋楼的稳固性,所以在早期设计数据库的时候就要多方面、多角度思考,甚至要考虑到后期维护。

环境需要

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 {@Autowiredprivate IUserService iUserService;/*** 用户登录* @param username* @param password* @param session* @return*/@RequestMapping(value = "login.do",method = RequestMethod.POST)@ResponseBodypublic ServerResponse<User> 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<User> 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天@Autowiredprivate 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;}
}

java ssm框架的点歌系统的设计与实现源码相关推荐

  1. java计算机毕业设计图书借阅系统的设计与实现源码+系统+数据库+lw文档

    java计算机毕业设计图书借阅系统的设计与实现源码+系统+数据库+lw文档 java计算机毕业设计图书借阅系统的设计与实现源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  2. 计算机毕业设计Java晨曦文学社在线投稿系统的设计与实现(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java晨曦文学社在线投稿系统的设计与实现(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java晨曦文学社在线投稿系统的设计与实现(源码+系统+mysql数据库+lw文档) ...

  3. java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数据库+调试

    java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数 ...

  4. 基于Java毕业设计幼儿校园通系统的设计与实现源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计幼儿校园通系统的设计与实现源码+系统+mysql+lw文档+部署软件 基于Java毕业设计幼儿校园通系统的设计与实现源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目 ...

  5. 基于Java毕业设计蛋糕店会员系统的设计与实现源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计蛋糕店会员系统的设计与实现源码+系统+mysql+lw文档+部署软件 基于Java毕业设计蛋糕店会员系统的设计与实现源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目 ...

  6. 【Java在线问卷调查】Java ssm框架在线问卷调查系统的设计与实现

    摘  要 问卷调查法是当今社会调查中被广泛使用的一项调查研究方法,它以固定的问题.固定的选项来采集大量研究调查数据,有效的帮助到各种科学社会研究.传统的纸质问卷调查虽然能实现不同的调查对象填写问卷,但 ...

  7. SSM框架基于h5的校园兼职招聘系统的设计与实现源码+论文三稿+ppt+查重报告(包远程安装,已降重)

    项目名称 SSM框架基于h5的校园兼职招聘系统的设计与实现源码 视频效果 SSM框架基于h5的校园兼职招聘系统的设计与实现源码_哔哩哔哩_bilibili 项目地址 SSM框架基于h5的校园兼职招聘系 ...

  8. SSM框架基于JavaWeb在线投票系统的设计与实现源码

     博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SSM框架基于JavaWeb在线投票系统的设计与实现源码 视频效果 SSM框架基 ...

  9. 基于java SSM框架的游戏商城系统

    今天给大家介绍一个使用java SSM框架的游戏商城系统,案例比较典型,更换一些内容可以作为其他商品的商城系统使用,话不多说上截图: 技术描述 开发工具: idea 数据库: mysql Jar包仓库 ...

最新文章

  1. oracle in的用法_oracle 左连接、右连接、全外连接、内连接、以及 (+) 号用法
  2. 还觉得linux命令难吗,看这篇2w多字的linux命令详解,通俗易懂
  3. python的.arsort()函数的用法
  4. SCU 3133(博弈)
  5. JS生成x到y的随机数
  6. arcgis中的python字符串比较
  7. 下拉选择_在管理Excel中实现联动下拉选择
  8. python重写和装饰器_python装饰器
  9. (二十四)JSP标签之基本标签(jsp:标签名)
  10. python3.7保存不了_Python3.7 traceback捕获打印和保存异常
  11. Win32 改变鼠标的光标图片
  12. 理解全加器(进来学小学加法)
  13. 使用 Kind 搭建你的本地 Kubernetes 集群
  14. 技术篇(二)Demo示例——Bundle打包和加载
  15. 颈椎病的成因及治疗预防方法
  16. 玩儿计算机最快的人,电脑玩吃鸡最全攻略,让你吃鸡快人一步
  17. 随身系统veket linux v3.11简体中文免费版,上网本操作系统(veket)
  18. Android实现网络下载一(单任务下载--支持断点续传)
  19. 什么是分库分表?为什么需要分表?什么时候分库分表
  20. Java计算从起始日期到终止日期之间的天数

热门文章

  1. 软件测试人员必备的60个测试工具清单,建议收藏一波~
  2. icon font大搜罗
  3. Windows Azure真实案例:NeoGeo New Media --SQL Azure提高数字媒体资产解决方案的拓展性...
  4. HDU1338/卡片游戏/斗地主/拳王争霸
  5. 新电脑验机步骤(1)
  6. 装Win7吧,免得不多久又要换系统了,Win7漂亮又好用
  7. history命令在脚本里面执行不成功解决方案
  8. 扁平化网站设计风格七大技巧
  9. servicer使用
  10. 创新指南 | 推动销售的17个可落地的集客式营销示例