# 基于javaEE实现的在线音乐系统
# 1、概述
- **开发环境**
- Windows10
- Eclipse
- Tomcat 9.0
- Mysql 8
- JDK 10
- **运行环境**
- Tomcat 9.0
- Mysql 8
- Chrome 71
# 2、系统的需求分析
## 2.1 系统可行性分析
本系统是采用Java Web技术的B-S架构的网站,用到的技术有Java EE 、CSS、JavaScript、Ajax。为了使用的效果以及开发的简便,在前端使用了CSS的Bootstrap及其UI组件框架,JS的Jquery库以及Ajax技术。在线音乐是获取的外部站点的API提供查询服务,并且每一次播放在线音乐会将其数据保存到本地数据库。本地音乐是从本地数据库中获取数据展现到用户界面。
## 2.2 系统功能描述
### 2.2.1 用户管理
- **用户注册**:用户可以点击注册按钮进入注册界面,注册属于自己的账号
- **用户登录**:用户使用自己的账号登录系统
- **用户设置**:可点击个人设置,修改个人信息,例如昵称,头像等
### 2.2.2 播放界面
- **音乐播放[播放与暂停]**:对在播放器中的音乐进行播放和暂停
- **音量调节**:对正在播放器中的音乐的音量大小进行调节
### 2.2.3 歌单与音乐管理
- **歌单管理**:对歌单的增删查改
- **音乐管理**:将音乐添加进歌单,将音乐从歌单中删除
### 2.2.4 音乐搜索
- **在线搜索**:在网络上搜索获取音乐资源
- **系统乐库**:获取系统所在服务器上的音乐资源
## 2.3 系统的数据流图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c1fc4fe7a3a78b70e6196d806855c3b1.writebug)
## 2.4 系统UML建模设计
![](http://www.writebug.com/myres/static/uploads/2021/10/19/bc8cd4564730dafc08cc1d4dea4fddab.writebug)
## 2.5 系统的状态图
**登陆模块状态图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/86311e0562e558b72ca7d4626539b521.writebug)
**登陆模块状态图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/d1dc54d8cce5117be3abfbd8dec637cb.writebug)
## 2.6 系统的UML类图
本系统后台总共使用了四个包,其功能与关系如下。
- **utils**:封装了连接数据库和关闭数据库的操作
- **dto**:包含封装了某个对象的所有信息的类
- dao**:封装了对数据库的操作
- **servlets**:包含处理前端发送的各种信息的servlet
以上四个包都位于cn.edu.whpu.music包下,它们的关系如下图所示。
![](http://www.writebug.com/myres/static/uploads/2021/10/19/30e543373cbfa1c1736fdad98c8a750d.writebug)
# 3、系统总体设计
## 3.1 系统结构方框图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c21ee226a49996325c240ad6ea68ed76.writebug)
## 3.2 各模块功能
**用户信息模块**
包含功能有用户的注册,用户的登录,用户个人信息的修改和用户个人信息的展示。
**搜索音乐模块**
包含功能有在线音乐搜索,本地乐库搜索。
**歌单管理模块**
包含功能有添加新的歌单,修改歌单信息,删除歌单。
**收藏歌曲模块**
包括添加音乐到指定歌单,从歌单中删除音乐。
## 3.3 详细的UML类图
**用户信息模块**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/ab18970c8623b11fc1877db805ee3aaf.writebug)
- **DBManager**:封装了连接数据库和关闭数据库的操作
- **UserDTO**:封装了用户个人信息的类
- **UserDAO**:封装了操作用户个人信息的类
- **UserRegistServlet**:用户注册的servlet
- **UserLoginServlet**:用户登录的servlet
- **EditUserInfoServlet**:修改用户个人信息的servlet
**搜索音乐模块(本地乐库)**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/d5961f6c2fb57fbbe441c11aeacf6ebd.writebug)
- **DBManager**:封装了连接数据库和关闭数据库的操作
- **MusicDTO**:封装了音乐信息的类
- **MusicDAO**:封装了操作音乐信息的类
- **LocalMusicServlet**:处理点击本地乐库按钮后的请求并返回数据的servlet
注:在线音乐搜索是用ajax请求的网络上的API接口获取数据并渲染到主页面,与该处的servlet无关。
**歌单管理模块**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/ed0100d8f2fb54942a9a6d07681d0d16.writebug)
- **DBManager**:封装了连接数据库和关闭数据库的操作
- **MusicListDTO**:封装了歌单信息的类
- **MusicListDAO**:封装了操作歌单信息的类
- **AddMusicListServlet**:添加歌单信息的servlet
- **InitMusicListServlet**:通过用户ID查询并返回其对应的歌单的servlet
- **DeleteMusicListServlet**:删除歌单的servlet
- **UpdateMusicListServlet**:更新歌单的servlet
- **ShowMusicsFromListServlet**:通过用户ID和歌单ID查询并返回其对应的歌单的servlet
**收藏歌曲模块**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c5ce608dbd3b54b28e733727e1f9c999.writebug)
- **DBManager**:封装了连接数据库和关闭数据库的操作
- **MusicDTO**:封装了音乐信息的类
- **MusicDAO**:封装了操作音乐信息的类
- **ListMusicRelationDTO**:封装了音乐与歌单对应关系信息的类
- **ListMusicRelationDAO**:封装了操作音乐与歌单对应关系信息的类
- **CollectionMusicServlet**:收藏音乐进入指定歌单的servlet
- **CancelCollectMusicServlet**:从歌单取消某音乐收藏的servlet
## 3.4 设计数据管理子系统
因为使用java编写的并发量不是特别大的后台程序,所以使用了更为轻量级的mysql 8。其好处有如下几点:
- **普及性**:MySQL在过去两年已经获得了25%的市场份额。相比其他的开源数据库和闭源数据库,越来越多的开发者将继续选择MySQL。MySQL在业界的流行所带来的另一个好处是,人们总可以很轻松地发现本行业的解决方案
- **简单性**:对于MySQL数据库,无论是在开发方面,还是支持方面,现在有大量强大的工具可以选择。每一个新手开发者可以轻松地使用MySQL数据库进行开发。甚至一个有经验的Windows管理者也可以轻松部署并开始学习它,不需投入一分钱来了解这个数据库
- **低成本**:MySQL数据库归MySQL AB公司所有,但是这个软件是开源的,有一个社区版可以免费下载。稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL。MySQL对硬件的较低要求是其最大的优势之一,不过需要注意的是:内存越多越好,因为所有的重要数据存储都在内存中完成。一个免费的数据库意味着,更多珍贵的资金可以用于其他业务的启动,诸如市场、广告或调研和开发等
## 3.5 系统E-R图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/1c4e14de408b8aa72625519a212ea5ec.writebug)
系统E-R图如上图所示。主要逻辑有:
- 一个用户在某一时刻只能播放一首歌曲
- 一个用户可以创建n个歌单
- 一个音乐可以被n个歌单收藏,一个歌单也能收藏n首音乐
## 3.6 数据库表
![](http://www.writebug.com/myres/static/uploads/2021/10/19/15421aca4f87d57a822fa9a5999cc122.writebug)
本系统该次设计了四张表:
- tb_users表记录用户信息
- tb_musiclists表
- tb_list_music表
- tb_musics表
## 3.7 数据库表之间的关系
**关系1**
tb_users表和tb_musiclists表是一对多的关系。其中tb_musiclists中表的list_uid字段必须遵照tb_users表中的user_id。即一个用户可以有多个歌单,而一个歌单只能由一个用户。
![](http://www.writebug.com/myres/static/uploads/2021/10/19/f1cb00f4a44cfa8518428f172bddb624.writebug)
**关系2**
tb_musiclists表和tb_musics表是多对多的关系,并且tb_list_music表记录了它们之间的对应关系。tb_list_music表中lid参照tb_musiclists中的list_id字段,tb_list_mus
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
精选_基于javaEE实现的在线音乐系统_源码打包 (113个子文件)
MusicListDAO.class 6KB
MusicDAO.class 5KB
UserRegistServlet.class 5KB
UserDAO.class 4KB
UserLoginServlet.class 4KB
ShowMusicsFromListServlet.class 3KB
InitMusicListServlet.class 3KB
ListMusicRelationDAO.class 3KB
LocalMusicServlet.class 3KB
CollectionMusicServlet.class 3KB
UserDTO.class 2KB
EditUserInfoServlet.class 2KB
AddMusicListServlet.class 2KB
CancelCollectMusicServlet.class 2KB
UpdateMusicListServlet.class 2KB
MusicDTO.class 2KB
DBManager.class 2KB
MusicListDTO.class 2KB
DeleteMusicListServlet.class 2KB
ListMusicRelationDTO.class 1KB
.classpath 1KB
1.cld 794B
1.cld 794B
org.eclipse.wst.common.component 456B
org.eclipse.wst.jsdt.ui.superType.container 49B
fontawesome-all.css 43KB
style.css 11KB
bottom.css 9KB
index.css 2KB
java课设报告zy.docx 3.98MB
fa-solid-900.eot 104KB
fa-brands-400.eot 96KB
fa-regular-400.eot 30KB
mysql-connector-java-8.0.13.jar 2.03MB
fastjson-1.2.17.jar 397KB
standard.jar 384KB
jstl.jar 20KB
SmartUpload.jar 16KB
MusicListDAO.java 6KB
MusicDAO.java 6KB
UserDAO.java 4KB
UserRegistServlet.java 3KB
ListMusicRelationDAO.java 3KB
ShowMusicsFromListServlet.java 2KB
LocalMusicServlet.java 2KB
CollectionMusicServlet.java 2KB
InitMusicListServlet.java 2KB
UserDTO.java 2KB
UserLoginServlet.java 2KB
DBManager.java 2KB
EditUserInfoServlet.java 1KB
MusicDTO.java 1KB
MusicListDTO.java 1KB
UpdateMusicListServlet.java 1KB
AddMusicListServlet.java 1KB
CancelCollectMusicServlet.java 1KB
DeleteMusicListServlet.java 1KB
ListMusicRelationDTO.java 710B
back.jpg 321KB
1547778966031.jpg 318KB
1.jpg 119KB
meiqin.jpg 83KB
1547744705870.jpg 83KB
1547742452751.jpg 83KB
jquery-2.2.3.min.js 84KB
jquery.validate.js 37KB
myAxios.js 12KB
jquery.vide.min.js 9KB
index.js 5KB
utils.js 391B
.jsdtscope 555B
index.jsp 18KB
setup.jsp 4KB
login.jsp 3KB
LICENSE 1KB
README.md 15KB
MANIFEST.MF 36B
2.mgc 0B
2.mgc 0B
2.mgi 0B
2.mgi 0B
003.mp3 290KB
heisemaoyi.mp3 153KB
001.mp3 145KB
002.mp3 110KB
1.mp4 1.44MB
org.eclipse.wst.jsdt.ui.superType.name 6B
1.png 284KB
play.png 18KB
1547776857069.png 18KB
delete.png 3KB
collect.png 3KB
edit.png 3KB
f5.png 2KB
collected.png 2KB
org.eclipse.jdt.core.prefs 400B
.project 873B
music.sql 5KB
fa-brands-400.svg 496KB
fa-solid-900.svg 382KB
共 113 条
- 1
- 2
资源评论
工具盒子
- 粉丝: 58
- 资源: 1313
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功