基于Jsp和MySQL实现的云音乐平台

showy

发布日期: 2021-04-09 08:52:55 浏览量: 553
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、系统使用说明

1.1 配置

  • 开发环境:Eclipse Java EE IDE for Web Developers 4.3.2

  • 开发语言:Java 1.8

  • MVC框架:Spring 4.3.3

  • web服务器:Tomcat

  • 开发系统:OSX/LINUX

  • 数据库:MySQL

1.2 相关路径

  • controller:CloudMusic/src/controller

  • model:CloudMusic/src/model

  • view:CloudMusic/WebContent/WEB-INF/view

1.3 运行方法

  • 需要提前配置好mysql数据库,sql文件位于根目录 (DDL.sql DML.sql)

  • 设置数据库参数 配置文件位于

    1. apache-tomcat/webapps/CloudMusic/WEB-INF/classes/dbConfig.properties
  • 终端启动服务器

    1. cd apache-tomcat
    2. ./bin/catalina.sh run

    运行成功后,浏览器打开 http://localhost:8080/CloudMusic 可访问

1.4 其他说明

若运行.sh文件 报permisison denied, 则在终端运行 chmod +x catalina.sh 修改权限。

二、软件基本功能介绍

2.1 登陆注册模块

2.1.1 注册功能

  • 判断邮箱是否注册过

  • 判断输入的邮箱是否为有效邮箱

  • 确认密码与登陆密码无误

  • 注册成功,相关信息并随机生成不重复的用户id存入数据库

  • 注册成功后,自动登录并生成cookie并跳转回首页

2.1.2 登陆功能

  • 判断邮箱是否注册过

  • 从数据库查找相关信息,确认密码是否正确

  • 成功登陆后,生成cookie并跳转回首页

2.2 首页推送模块

2.2.1 新闻推送功能

从数据库调用相关新闻信息后展示在首页。

2.2.2 音乐排名功能

连接数据库,按照类型从数据库中抽取最新的10首显示。

2.3 音乐模块

2.3.1 音乐播放功能

  • 音乐选择播放(第一个按钮),从数据库根据音乐id查询音乐相关信息,根据音乐的url下载播放

  • 音乐选择加入歌单(第二个按钮),播放器会接着播放

2.3.2 音乐收藏功能

  • 音乐收藏(第三个按钮),从cookie中获得用户id,再根据音乐id存入数据库中

  • 若没有登陆则无法收藏

  • 也无法重复收藏同样的音乐

2.4 用户模块

  • 获取用户信息并显示在个人页面

  • 获取个人收藏的音乐

  • 在个人页面可使用小播放器播放音乐,功能同上

  • 若没有登陆,将无法成功进入该页面

三、数据库设计

用户表(普通用户+管理员)(app_user)

属性名 说明 类型 长度 允许空值
email 登录邮箱 Varchar 16
pwd 密码 Char 34
id 用户id Int 11
regDate 注册时间 date
root 身份 Int 11

新闻推送表 (app_news)

属性名 说明 类型 长度 允许空值
title 推送标题 Text
content 推送内容 Text
id Id Int 11
type 类型 Varchar 16
pubDate 发表日期 date

用户信息表(app_info)

属性名 说明 类型 长度 允许空值
User_id 用户id Int 10
Name 昵称 varchar 16
image 头像路径 varchar 34

歌曲表(app_music)

属性名 说明 类型 长度 允许空值
Name 曲名 text
src 歌曲路径 text
lyric 歌词 text
Music_id 歌曲id int 10
Listener 收听人数 int 10

歌曲类型 表(app_class)

属性名 说明 类型 长度 允许空值
class_id 类型id Int 11
Class_name 类型名 Varchar 80

歌曲—类型表(app_musicRclass)

属性名 说明 类型 长度 允许空值
music_id 歌曲id Int 11
Class_id 类型_id Int 11

歌手表(app_singer)

属性名 说明 类型 长度 允许空值
singer_id 歌手id Int 11
Singer_name 歌手名字 Varchar 80
country 国籍 Varchar 80
birthday 生日 Date

歌手-歌曲表

属性名 说明 类型 长度 允许空值
music_id 歌曲id Int 11
singer_id 歌手_id Int 11

用户-歌曲收藏表(app_collection)

属性名 说明 类型 长度 允许空值
user_id 用户id Int 11
Music_id 歌曲_id Int 11
colDate 收藏的日期 Date
Id 字段id Int 10

四、功能模块使用的主要技术

4.1 登陆注册模块

  • 登陆注册功能都使用了cookie功能,用来保存用户的id,以支持用户的收藏功能

  • 注册功能中,需要验证邮箱是否合法,通过正则匹配方法来匹配是否有有效邮箱

  • 正则表达式:\w+@(\w+.)+[a-z]{2,3}

4.2 首页推送模块

  • 主要功能的实现都是通过SQL语句从数据库获取相关数据,并传给前端进行展示

  • 从数据库获取的数据为ResultSet格式需要引入org.json.jar包并将ResultSet格式转换为json格式

4.3 音乐模块

  • 数据库存取了音乐的url播放地址,通过音乐id获取。再通过网络获取相关资源后实现播放功能

  • 收藏音乐前,会先检查是否有有效cookie从而确认是否登陆,之后再在数据库确认是否在用户-音乐收藏表中存在该记录,确认无误后,再将数据存入数据库

4.4 用户模块

  • 检查本地是否有有效cookie,若无则跳转回

  • 通过SQL语句从数据库获取相关数据,并传给前端进行展示

五、系统测试报告

5.1 环境配置复杂

Spring框架是基于java开发的框架,相比于ThinkPHP框架,单从文件大小来看就相差几十M,配置起来也是非常麻烦。

Spring框架并没有像XAMPP一样的集成环境的软件可以选用,因此数据库和服务器都必须独立安装。Spring框架相比于HTML文件更加支持jsp文件,因此服务器的选择上选择了Tomcat进行开发。数据库需要本地安装并且配置好Mysql。

Eclipse有专门针对java web开发的版本,因此选用Eclipse Java EE IDE for Web Developers 4.3.2

5.2 编码问题

Spring框架对编码问题的解决还是比较方便,在前端的jsp页面上申明 pageEncoding=”UTF-8”,基本都可以解决页面中文乱码的问题。

从 Mysql 获取的数据常常都为 ISO-8859-1 编码格式,controller 中 RequestMapping 可以事先申明编码类型 charset=utf-8 即可解决编码问题。

5.3 数据库查询复杂

由于数据设计较为复杂,以获取音乐相关信息为例,音乐的链接、音乐名;音乐的作者;音乐的类型;分别在多个表中,在设计查询的SQL时需要用到natural join 关联多个表获取信息。

如获取音乐相关属性SQL语句:

  1. SELECT name, music_id, singer_name, src FROM app_singerRmusic NATURE JOIN app_Singer NATURAL JOIN app_Music LIMIT 20

5.4 本地缓存影响调试

由于本地缓存的功能,常常出现更改的后台相关文件,却无法看到更改后的效果,因此在调试的时候,时常需要清除本地缓存,并重启浏览器。

5.5 Spring框架中,Request的地址中不能获取带有’/’的参数

由于链接通常是带有多个’/’标点,所以无法使用 /getSrc/{url} 的url参数获取音乐的链接,因此改用 /getSrc/** 匹配所有该样式的访问,再通过request.getRequestURL()获取完整的链接,然后经过简单的字符串处理后获取所需要的参数url。

5.6 系统存的不足

  • 功能未完善,由于时间原因,原项目的还具有增加好友、音乐评论等功能尚未实现

  • 用户密码存入数据库并没有进行加密,而是直接存入数据库

上传的附件 cloud_download 基于Jsp和MySQL实现的云音乐平台.7z ( 38.76mb, 11次下载 )
error_outline 下载需要10点积分

发送私信

如果你错过了爱,便错过了生活

13
文章数
12
评论数
最近文章
eject