一、项目设计
本项目使用 Java 语言编写,借助 Servlet Web 开发技术, 使用 CSS 等前端技术渲染,借助数据库存储信息,开发了一个类似喜马拉雅的音频管理平台,注册用户可以点击创作中心,进行用户、音频和专辑的管理。
1.需求分析
用户管理:实现用户的注册、登录、管理;
音频管理:实现音频的录制和上传,显示音频列表
专辑管理:实现音频录制和上传,能够显示音频列表
页面跳转:实现各个页面的交互
2.用户角色
普通用户:不登录可以浏览访问
注册用户:UP主登录使用-----数据库中需要保存相关数据
3.数据库创建
用户表users:用户编号(uid) 用户名(username) 密码(password)
音频表tracks:音频编号(tid) 标题(title) uid 类型(type) 内容(content)
专辑表albums:专辑编号(aid)标题(title) uid 封面图(cover) 状态(state)
关系表relations: rid aid tid
4.后端对象的类型
表示过程的对象
servlet对象:动态资源(负责HTTP输入、输出)
service对象:当数据来自多张表需要在代码中做组装时,在serv中进行
dao对象/respository对象:单表直接访问Database的操作
表示数据的对象
data_object(DO):描述从Database中取出的数据
view_object(VO):描述展示出去的数据(通过JSON做序列化的)
二、响应过程
以专辑列表为例 Mysql -> Tomcat(Servlet) -> 浏览器 -> 用户
1.浏览器输入 list.html
2.浏览器发起GET请求 list.html
3.Tomcat根据对应的路径,找到对应的静态资源并响应其内容
4.浏览器解析html的内容,发现了<script>标签,会发起一个新的请求
5.浏览器发起GET请求js/list. js
6. Tomcat根据对应的路径,找到对应的静态资源并响应其内容
7.浏览器执行JS中的语句
8.其中有发起ajax的语句(xhr. send())
9.浏览器发起GET请求list. json
10. Tomcat根据资源路径,找到对应的Serviet对象进行处理
Servlet->Service->DAO(Repository)的内部处理
1.判断登录用户(Cookie/Session知识)
2.执行必要的SQL
3.组合
4.响应
11.浏览器继续执行JS中的xhr. onload函数
12.我们的语句,根据listjson返回的结果,修改DOM树结构(添加新的列表项)
13.浏览器根据DOM树,渲染出用户看到的效果
三、实现效果