基于javaweb的SpringBoot音乐平台系统(java+springboot+mybaits+vue+elementui+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

022325002508

042325002508

052325002508

062325002508

072325002508

082325002508

092325002508

102325002508

112325002508

122325002508

基于javaweb的SpringBoot音乐平台系统(java+springboot+mybaits+vue+elementui+mysql)

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

4.数据库:MySql 5.7/8.0版本均可;

5.是否Maven项目:是;

技术栈

后端:SpringBoot+Mybaits

前端:Vue + elementui

使用说明

项目运行:

  1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;

  2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;

  3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

  4. 运行项目,在浏览器中输入地址:

前台地址:http://localhost:8080/springbootrpj39/front/index.html

后台地址:http://localhost:8080/springbootrpj39/admin/dist/index.html

管理员 abo 密码 abo

用户:用户1 密码: 123456

注意项目文件路径中不能含有中文、空格、特殊字符等,否则图片会上传不成功。

登录管理控制层:

@WebServlet(“/user/loginServlet”)

public class LoginServlet extends HttpServlet {

private UserService userService = null;

@Override

public void init() throws ServletException {

userService = new UserServiceImpl();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String username = request.getParameter(“username”);

String password = request.getParameter(“password”);

User user = userService.getUserByLogin(username, password);

if(user == null) {

request.setAttribute(“titleMsg”, “登陆失败!”);

request.setAttribute(“textMsg”, “哎呀!
出了些问题,您要的页面不见了,请稍后再试”);

String url = request.getContextPath() + “/page/user/login.jsp”;

request.setAttribute(“urlMsg”, url);

request.setAttribute(“pageMsg”, “登陆”);

request.setAttribute(“codeMsg”, “404”);

request.getRequestDispatcher(“/page/user/message.jsp”).forward(request, response);

} else if(user.getActive() == 0) {

request.setAttribute(“titleMsg”, “登陆失败!”);

request.setAttribute(“textMsg”, “哎呀!
小主,您还没有进行邮箱激活呢,请激活后再试!”);

String url = request.getContextPath() + “/page/user/login.jsp”;

request.setAttribute(“urlMsg”, url);

request.setAttribute(“pageMsg”, “登陆”);

request.setAttribute(“codeMsg”, “”);

request.getRequestDispatcher(“/page/user/message.jsp”).forward(request, response);

} else if(user.getActive() == 1) {

// 登陆成功,跳转到主页

// 将用户信息存入session

request.getSession().setAttribute(“user”, user);

response.sendRedirect(request.getContextPath() + “/page/user/index.jsp”);

} else {

request.setAttribute(“titleMsg”, “哎呀!”);

request.setAttribute(“textMsg”, “出了些问题,您要的页面不见了,请稍后再试”);

String url = request.getContextPath() + “/page/user/login.jsp”;

request.setAttribute(“urlMsg”, url);

request.setAttribute(“pageMsg”, “登陆”);

request.setAttribute(“codeMsg”, “404”);

request.getRequestDispatcher(“/page/user/message.jsp”).forward(request, response);

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

歌手管理控制层: 

@WebServlet(“/albumSingleServlet”)

public class AlbumSingleServlet extends HttpServlet {

private SongService songService = null;

private SingerService singerService = null;

@Override

public void init() throws ServletException {

songService = new SongServiceImpl();

singerService = new SingerServiceImpl();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 获取参数

String singerName = request.getParameter(“singerName”);

String _currentPage = request.getParameter(“currentPage”);// 当前页码

String _rows = request.getParameter(“rows”);// 每页显示条数

// 增加该歌手的热度

singerService.updateSingerAccessCountBySingerName(singerName);

if(_currentPage == null || “”.equals(_currentPage)){

_currentPage = “1”;

if(_rows == null || “”.equals(_rows)){

_rows = “10”;

int currentPage = Integer.parseInt(_currentPage);

int rows = Integer.parseInt(_rows);

PageBean songPage = new PageBean<>();

int totalCount = Math.toIntExact(songService.getAllSongsCountBySingerName(singerName));

// 计算总页码

int totalPage = (totalCount % rows) == 0 ? (totalCount / rows) : (totalCount/rows) + 1;

songPage.setTotalPage(totalPage);

// 计算当前页码

if(currentPage <= 0){

currentPage = totalPage;

} else if(currentPage > totalPage) {

currentPage = 1;

songPage.setCurrentPage(currentPage);

int start = (currentPage - 1) * rows;

// 获取该歌手的所有歌曲

List allSongs = songService.getSongBySingerName(start, rows, singerName);

Singer singer = singerService.getSingerBySingerName(singerName);

songPage.setList(allSongs);

songPage.setTotalCount(totalCount);

songPage.setRows(rows);

songPage.setTotalPage(totalPage);

// 添加到session

HttpSession session = request.getSession();

session.setAttribute(“songPage”, songPage);

session.setAttribute(“singer”, singer);

// 重定向到album-single页面

response.sendRedirect(request.getContextPath() + “/page/user/album-single.jsp”);

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

 歌单管理控制层:

@WebServlet(“/addSongPlayCountServlet”)

public class AddSongPlayCountServlet extends HttpServlet {

private SongService songService = null;

@Override

public void init() throws ServletException {

songService = new SongServiceImpl();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String songId = request.getParameter(“songId”);

System.out.println(“添加歌曲ID为 “ + songId + “ 的播放数量!”);

// 增加歌曲的播放次数

songService.addPlayCountBySongId(Integer.parseInt(songId));

JSONObject jsonObject = new JSONObject();

jsonObject.put(“status”, “ok”);

ServletUtils.sendToPage(response, jsonObject.toString());

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

 歌单分类管理控制层:

@WebServlet(“/getAllCategoriesSongServlet”)

public class GetAllCategoriesSongServlet extends HttpServlet {

private SongService songService = null;

private TypeService typeService = null;

@Override

public void init() throws ServletException {

songService = new SongServiceImpl();

typeService = new TypeServiceImpl();

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String songType = request.getParameter(“songType”);

String _currentPage = request.getParameter(“currentPage”); // 当前页码

String _rows = request.getParameter(“rows”);// 每页显示条数

if(_currentPage == null || “”.equals(_currentPage)){

_currentPage = “1”;

if(_rows == null || “”.equals(_rows)){

_rows = “10”;

int currentPage = Integer.parseInt(_currentPage);

int rows = Integer.parseInt(_rows);

PageBean songPage = new PageBean<>();

int totalCount = Math.toIntExact(songService.getAllSongsCountByType(songType));

// 计算总页码

int totalPage = (totalCount % rows) == 0 ? (totalCount / rows) : (totalCount/rows) + 1;

songPage.setTotalPage(totalPage);

// 计算当前页码

if(currentPage <= 0){

currentPage = totalPage;

} else if(currentPage > totalPage) {

currentPage = 1;

songPage.setCurrentPage(currentPage);

int start = (currentPage - 1) * rows;

// 获取该歌手的所有歌曲

List allSongs = songService.getSongByType(start, rows, songType);

Type type = typeService.getTypeByName(songType);

songPage.setList(allSongs);

songPage.setTotalCount(totalCount);

songPage.setRows(rows);

songPage.setTotalPage(totalPage);

// 添加到session

HttpSession session = request.getSession();

session.setAttribute(“songPage”, songPage);

session.setAttribute(“type”, type);

// 重定向到album-single页面

response.sendRedirect(request.getContextPath() + “/page/user/categories-single.jsp”);

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

 下载歌曲管理控制层:

@WebServlet(“/user/person/downLoadServlet”)

public class DownLoadServlet extends HttpServlet {

private SongService songService = null;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//设置响应消息编码

response.setCharacterEncoding(“utf-8”);

//获取下载的文件信息

String idStr = request.getParameter(“songId”);

System.out.println(“作品id:” + idStr);

int songId = Integer.parseInt(idStr);

//从数据库找到该文件信息

Song song = songService.getSongById(songId);

//获取所要下载的文件名称

String absPath = request.getSession().getServletContext().getRealPath(“”);

System.out.println(absPath);

String filepath = absPath + “/“ + song.getUrl();

//对文件名称编码

// filename = new String(filename.trim().getBytes(“iso8859-1”),”UTF-8”);

System.out.println(“需要下载的文件路径为:” + filepath);

// //得到要下载的文件

File file = new File(filepath);

System.out.println(“文件是否存在:” + file.exists());

//如果文件不存在

if (!file.exists()) {

request.setAttribute(“titleMsg”, “哎呀!”);

request.setAttribute(“textMsg”, “出了些问题,您要下载的资源不存在了!”);

String url = request.getContextPath() + “/page/user/album-single.jsp”;

request.setAttribute(“urlMsg”, url);

request.setAttribute(“pageMsg”, “歌曲列表”);

request.setAttribute(“codeMsg”, “”);

request.getRequestDispatcher(“/page/user/message.jsp”).forward(request, response);

return;

//改变下载量

System.out.println(“改变下载量之前:” + song.getDownloadCount());

song.setDownloadCount(song.getDownloadCount() + 1);

System.out.println(“改变下载量之后:” + song.getDownloadCount());

int flag = songService.updateSong(song);

System.out.println(“下载量改变是否成功:” + flag);

if (flag > 0) {

// //下载文件所在目录

// String folder = “WebContent/download/“;

//处理文件名

String realname = song.getName() + “.mp3”;

//设置响应头,控制浏览器下载该文件

response.setContentType(“application/x-msdownload”);

response.setHeader(“content-disposition”, “attachment;filename=” + URLEncoder.encode(realname, “UTF-8”));

//读取要下载的文件,保存到文件输入流

FileInputStream in = new FileInputStream(filepath);

//创建输出流

OutputStream out = response.getOutputStream();

//创建缓冲区

byte[] buffer = new byte[1024];

int len = 0;

//循环将输入流中的内容读取到缓冲区当中

while ((len = in.read(buffer)) > 0) {

//输出缓冲区的内容到浏览器,实现文件下载

out.write(buffer, 0, len);

//关闭文件输入流

in.close();

//关闭输出流

out.close();

System.out.print(“文件下载完成。”);

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

@Override

public void init() throws ServletException {

songService = new SongServiceImpl();


项目链接:
https://javayms.github.io?id=332325042508201tu
https://javayms.pages.dev?id=332325042508201tu