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

基于Jsp和MySQL实现的云音乐平台 一,系统使用说明 1,1 配置 开发环境 :Eclipse Java EE IDE for Web Developers 4

本文包含相关资料包-----> 点击直达获取<-------

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

一、系统使用说明

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)

  • 设置数据库参数 配置文件位于 shell apache-tomcat/webapps/CloudMusic/WEB-INF/classes/dbConfig.properties

  • 终端启动服务器 sh cd apache-tomcat ./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语句:

sql 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 系统存的不足

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

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

参考文献

  • 基于用户行为的音乐推荐系统设计与实现(华中科技大学·郝陆风)
  • 个性化音乐推荐系统的设计与实现(华中科技大学·余梦琴)
  • 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
  • 在线音乐管理系统设计与实现(华中科技大学·白爱)
  • 基于用户行为的音乐推荐系统设计与实现(华中科技大学·郝陆风)
  • 基于SSH的音乐共享网站(山东大学·王滢铭)
  • 基于PHP的在线音乐网站的设计与实现(武汉理工大学·陈君)
  • 基于Hadoop的分布式数据存储设计与实现(吉林大学·毛剑)
  • 基于SSH的音乐共享网站(山东大学·王滢铭)
  • 基于用户行为的音乐推荐系统设计与实现(华中科技大学·郝陆风)
  • 个性化音乐推荐系统的设计与实现(华中科技大学·余梦琴)
  • CLARANS改进算法在音乐网站智能推荐系统中的应用(吉林大学·魏佳)
  • 思科亿网网上交易实现与安全研究(吉林大学·周威)
  • 面向智能耳机的音乐服务平台的设计与实现(北京交通大学·刘新韵)
  • 基于SSH的音乐共享网站(山东大学·王滢铭)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计客栈 ,原文地址:https://m.bishedaima.com/yuanma/35406.html

相关推荐

  • 基于Python制作的乒乓球游戏

    基于 Python 制作的乒乓球游戏 导语 月底了,很惭愧,并没有找到一些想复现的经典游戏的素材文件,所以这个月就搞个简单的小游戏吧,废话不多说
    2024年05月14日
    2 1 1
  • SSH框架+sqlserver实现在线拍卖系统源码+论文

    在当前数字化时代,网络拍卖系统已成为商业交易的重要方式之一,基于SSH框架和SQL Server数据库的在线拍卖系统能够满足日益增长的在线交易需求,该系统通过利用互联网技术
    2024年05月07日
    8 1 2
  • 基于python socket 实现的聊天室

    基于python socket 实现的聊天室 聊天室 聊天室用 python socket 实现,socket 分为客户端和服务端 服务端使用 server_socket 监听请求
    2024年05月14日
    4 1 3
  • 基于Python实现的手写数字识别

    基于Python实现的手写数字识别 一,准备 测试准备:pycharm,windows自带画图功能,python3,5 安装python3
    2024年05月14日
    4 1 1
  • 基于python的自动续借图书集

    基于python的自动续借图书集 Python 2,7 IDE Pycharm 5,0,3 Firefox浏览器:47
    2024年05月14日
    2 1 2
  • 基于jsp+servlet+mysql的图书管理系统

    Book-management-jsp 基于jsp+servlet+mysql的图书管理系统 参考文献 基于RBAC的SSH架构下的图书管理应用研究(大连理工大学·姜楠) 高校图书管理系统的设计与实现(东北大学·黄鑫) 复旦大学数字图书馆个人图书管理系统的设计与实现(电子科技大学·陆卫国) 图书综合管理系统(吉林大学·王宇) 宁波职业技术学院图书管理系统分析与设计(云南大学·赵顺勇) 大同实验小学图书馆借还系统的设计与实现(电子科技大学·王洪宇) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 医疗卫生图书网的设计与实现(电子科技大学·张占平) 基于Web的书刊进销存系统的设计与实现(大连理工大学·王宁) 基于JSP/Servlet的三层式网上书店的研究与实现(吉林大学·郭小雪) 基于RBAC的SSH架构下的图书管理应用研究(大连理工大学·姜楠) 基于B/S架构的网上书店系统的设计与实现(电子科技大学·陈云英) 基于
    2024年05月14日
    17 1 3
  • 基于web的在线问卷调查系统

    基于web的在线问卷调查系统 摘要 在科学技术和社会经济不断发展的今天,人们对各种各样新奇的事物以及品质都有了更高的要求,越来越多的组织或者个人迫切希望了解人们的状态及趋向
    2024年05月14日
    1 1 1
  • 基于Web的公司管理系统

    基于Web的公司管理系统 一,设计目的 企业自动化管理系统将个人信息,职业照片上传,公告管理等录入到当前系统中,让领导打开系统就能看到自己想看的内容,信息的沟通与共享是系统搭建的基础
    2024年05月14日
    2 1 1
  • 基于SSM框架的医院电子病历管理系统源代码

    这是一个🔥🔥基于SSM框架的医院电子病历管理系统源代码🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 医院电子病历管理开发技术栈为SSM项目
    2024年05月23日
    3 1 1
  • 基于Python实现的疲劳驾驶检测

    基于Python实现的疲劳驾驶检测 摘 要 相比于完全把神经网络当成黑盒来做训练,本文尝试了一种混合的思路:先通过人脸特征点检测获得特征点,再通过特征点预估人脸位置
    2024年05月14日
    1 1 1

发表回复

登录后才能评论