当今社会,人们在高速高效的工作与生活节奏下,需要一定的放松与娱乐,而有声读物、音乐故事等为人们提供了一种很好的休闲方式。在这里,听书作为一个听音乐与创作音乐的平台,也在有声读物方面也为人们提供了一个不错的选择。
2.项目描述
访问听书平台,用户可以直接挑选对应专辑进行歌曲的播放,同时在登录创作中心后还可以进行自己的创作,可以通过上传与录制音频,创建专辑绑定音频来生成自己的音频与音频专辑。
二、项目功能
1.技术栈
Java、Servlet、Json、Ajax、HTML、MySQL、MediaDevices等
2.主要功能
针对不同用户有不同功能(普通用户+UP主)
1)普通用户:无需登录就可使用,数据库中不保存这类用户信息
a.直接访问首页,查看全部专辑并选择喜欢的专辑进行音频播放
b.游客可以登录创作中心注册成为UP主
2)UP主:需要登陆后使用,数据库中保存着这类用户信息
进行登录、注册、退出操作
上传音频、录制音频、查看音频列表
创建专辑、绑定音频、显示专辑列表(包含专辑发布状态等
三、准备工作整体框架:项目整体基于HTTP协议,前端采用HTML+JS+CSS来进行页面的整体布局,后端采用分层结构,分为Servlet层、Service层、Repo层、Dao层的设计,便于分类设计。
前端 | HTML+JS+CSS | 整体对页面进行布局 |
后端 | servlet对象 | 处理过程的对象,动态资源,负责处理HTTP的输入输出 |
service对象 | 当数据来自多张表时用于组织结构 | |
repository对象 | Dao层,单表直接访问数据库的相关操作,直接使用SQL对数据库进行增删查改 | |
date_object(DO)对象 | 描述从数据库中直接取出来的对象 | |
view_object(VO)对象 | 描述展示出去的数据,一般通过JSON做序列化 |
库表创建:
用户表users | uid | username | password | ||
音频表tracks | tid | uid | title(标题) | type(类型) | content(内容,二进制形式) |
专辑表albums | aid | uid | title(标题) | cover(封面) | state(发布状态) |
关系表relations | rid | aid | tid |
web资源:
功能 | 路径 | 资源 | |
首页 | 展示专辑 | /index.html | 静 |
/js/index.js | 静 | ||
/album-list.json | 动 | ||
播放页 | 播放专辑中歌曲 | /play.html?aid= | 静 |
/js/play.js | 静 | ||
/album-detail.json?aid= | 动 | ||
用户管理 | 注册 | /studio/user/register.html | 静 |
/studio/user/register.do | 动 | ||
登录 | /studio/user/login.html | 静 | |
/studio/user/login.do | 动 | ||
退出 | /studio/user/quit.do | 动 | |
音频管理 | 上传音频 | /studio/track/upload.html | 静 |
/studio/track/upload.do | 动 | ||
录制音频 | /studio/track/record.html | 静 | |
/studio/track/js/record.js | 静 | ||
/studio/track/record.json | 动 | ||
音频列表 | /sudio/track/list.html | 静 | |
/sudio/track/js/list.js | 静 | ||
/sudio/track/list.json | 动 | ||
专辑管理 | 创建专辑 | /studio/album/create.html | 静 |
/studio/album/create.do | 动 | ||
专辑列表 | /studio/album/list.html | 静 | |
/studio/album/js/list.js | 静 | ||
/studio/album/list.json | 动 | ||
展示已关联音频 | /studio/album/bind.html?aid= | 静 | |
/studio/album/js/bind.js | 静 | ||
/studio/album/bind.json?aid= | 动 | ||
绑定新的音频关联 | /studio/album/add.html?aid= | 静 | |
/studio/album/js/add.js | 静 | ||
/studio/album/candidate.json?aid= | 动 | ||
/studio/album/add.do | 动 | ||
专辑状态—发布专辑 | /sudio/album/publish.do?aid= | 动 | |
专辑状态—下线专辑 | /sudio/album/withdraw.do?aid= | 动 |