版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、个人音乐管理系统项目文档本次的毕业实习设计是基于Web技术的在线音乐管理系统。此系统通过AJAX+Struts 2.x+JSP框架技术来实现。数据库管理系统则为MySQL。此系统分为两部分:管理员模块(后台部分)和注册用户模块(前台部分 )。在具体实现各个模块的相应功能时,利用AJAX和JSP技术实现该系统的相应页面,利用Struts 2.x框架技术实现业务逻辑。一系统功能结构根据在线音乐管理系统,可将其分为前台和后台两个部分。从前台主界面可以发现注册用户可以实现如下功能:用户注册,用户登录,分享歌曲,下载歌曲,填写关于音乐的评论,音乐盒,点歌,试听歌曲,发送和接受短消息。前台功能结构如图1所
2、示 图1 在线音乐管理系统前台结构图从后台主界面可以发现超级管理员可以实现如下功能:管理员登录,音乐管理,友情链接,用户管理,添加管理员,修改密码和关闭。后台功能结构如图2所示在线音乐管理后台管理员登录音乐管理友情链接用户管理添加管理员修改密码 图2 在线音乐管理系统后台结构图2 业务流程图如图所示 用户 登录注册前台页面首页分享歌曲发送 短消息 接受短消息分享成功 试听音乐 点歌添加评论 添加到音乐盒下载歌曲 超级管理员 登录后台首页音乐管理修改密码添加管理员 用户管理友情链接 三数据库概念设计 根据系统所做的需求分析,规划出 本系统中使用的数据库实体 分别为用户信息实体,管理员档案实体,音
3、乐信息实体,留言信息实体,短信信息实体。下面将介绍几个关键实体的E-R图。1.用户信息实体 用户信息实体包括编号,用户名,用户的密码,音乐盒。考生档案实体的E-R图如图1.4所示。密码用户名音乐盒 编号 用户信息 图1.4 用户信息实体E-R图2.音乐信息实体 音乐信息实体包括编号,音乐的标题,音乐的歌曲,音乐所属专辑,上传时间,音乐试听次数,音乐的地址。音乐信息实体的E-R图如图1.5所示。音乐的标题歌曲所属专辑上传时间音乐信息 编号音乐的地址试听次数 图1.5 音乐信息实体E-R图3.短信信息实体 音乐信息实体包括编号,发短信的用户,接受短信的用户,短信的标题,短信的内容 ,发短信的时间,
4、发短信的 次数。短信信息实体的E-R图如图1.6所示。短信的标题接收短信的用户 发短信的用户 短信的内容 短信信息 编号发短信的次数 发短信的时间 图1.6 短信信息实体E-R图四用例图(个人)1.用户具有用户信息,每个用户具有一种账户状态用于标识权限;2.用户空间与用户一一对应,具有空间属性;3.每个用户都可以注册多个账户;4.用户信息:用户名,用户密码;5.用户注册:用户名,用户密码密码,确认密码;6.已注册用户,直接登陆:输入用户名及密码;7.修改密码:输入密码、新密码、重复密码;五数据库的逻辑结构 各数据表的结构Admin(管理员信息表)管理员信息 表用来保存管理员信息,该表的结构如图
5、1.1所示。 表1.1 admin表的结构字段名数据类型是否为空是否主键默认值描述idintno是ID(自动编号)NameVarchar(20)yes管理员用户名PwdVarchar(32)yes密码comments(留言信息表)留言信息 表用来保存留言信息,该表的结构如图1.2所示。 表1.2 comments表的结构字段名数据类型是否为空是否主键 默认值描述Idint noyesId号(自动编号)valuetextnonull留言的内容nameVarchar(20)nonull留言人的昵称Music_idInt(4)nonull音乐编号TimeVarchar(13)nonull发表评论时间
6、link(链接表)链接 表用来保存链接信息,该表的结构如图1.3所示。 表1.3 link表的结构字段名数据类型是否为空是否主键默认值描述idintno是ID(自动编号)valuetextyes友情链接的值titleVarchar(100)yes友情链接的标题Message(短信信息表)短信信息 表用来保存短信信息,该表的结构如图1.4所示。 表1.4 message表的结构字段名数据类型是否为空是否主键 默认值描述Idint noyesId号(自动编号)FromVarchar(20)发短信的用户ToInt(4)接受短信的用户Title Varchar(200)短信的标题valuetextno
7、null短信的内容TimeVarchar(13)nonull发短信的时间NewInt(1)发短信的次Music(音乐信息表)音乐信息 表用来保存音乐信息,该表的结构如图1.5所示。 表1.5 comments表的结构字段名数据类型是否为空是否主键 默认值描述Idint noyesId号(自动编号)TitleVarchar(50)音乐的标题singerVarchar(30)音乐的歌曲special Varchar(30)音乐所属专辑valuetextnonull音乐标题TimeVarchar(13)nonull上传时间clickInt(5)音乐试听次数urllongtext音乐的地址Tip (提
8、示信息表)提示信息 表用来保存提示信息,该表的结构如图1.6所示。 表1.6 comments表的结构字段名数据类型是否为空是否主键 默认值描述Idint noyesId号(自动编号)valuetext提示内容user(用户信息表)用户信息 表用来保存用户信息,该表的结构如图1.7所示。 表1.7 user表的结构字段名数据类型是否为空是否主键默认值描述idintno是ID(自动编号)NameVarchar(20)yes用户名PwdVarchar(32)yes用户密码Music_boxlongtext音乐盒六数据表之间的关系设计七系统总体设计 7.1 用户注册功能实现功能说明: 用户点击首页中
9、的注册链接后,页面中显示注册层供用户填写注册信息,当用户入新注册的用户名时,struts的register.java调用后 判断是否存在同名用户,并返回判断的信息;当用户输入密码和确认密码时,判断密码是否和确认密码相同;若以上两个条件同时满足,注册按钮可用,否则,注册按钮不可用。完成输入信息后,点击注册按钮进行用户注册操作,注册操作完成后,系统自动为用户跳到登录页面。描述:编号名称类型描述1index.jsp页面文件首页页面3Register.java注册类执行注册操作4Register.jsp页面文件用户注册信息5Login.java登录类执行登录操作7.2登陆功能实现功能说明:用户点击完登
10、陆链接后,在页面中显示,用户输入完用户名和密码后点击登陆按钮完成登陆操作,退出登录时点击注销登录 。描述:编号名称类型描述1Index.jsp登录文件登录页面2Login.java登录类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取4Logout.java注销登录类点击注销登录按钮后退出登录7.3实现在线音乐上传功能功能说明:用户进入主页面后,点击上传歌曲,进入上传歌曲页面。上传歌曲时,音乐的形式在后台的servlet相关类uploadmusic.java类中做了相关设置。当用户上传完歌曲后,可以点击下一步按钮,显示上传成功提示框,系统自动将歌曲添加到数据库中,同
11、时跳转到音乐更新页面,填写音乐相关信息,主题的字数和内容的字数在后台的upload.java中都做了设置, 当用户输入完相应的信息后,可以点击提交按钮,系统自动将信息添加到数据库中,添加成功后,显示添加成功提示框,跳转到主页可以进行音乐播放试听。描述:编号名称类型描述1index.jsp文件主页面2Uploadmusic.javaServlet类执行上传音乐操作3DBConnectionDAO操作类获取数据库4Upload.javaservlet执行音乐更新操作5Upload.jsp文件音乐更新页面7.4实现添加评论功能功能说明:当用户上传完音乐信息后,点击阅读全文,跳转到添加评论页面,可以输
12、入信息,主题的字数和内容的字数在后台的servlet相关类addComments中都做了设置。当用户输入完相应的信息后,可以点击提交按钮,系统自动将信息添加到数据库中,添加成功后可以查看输入的内容。当用户输入的信息不满足要求时,会发出错误信息提示,同时不满足要求的信息也不会添加到数据库中。因此用户需要进行修改内容,然后在重新添加。描述:编号名称类型描述1show.jsp文件添加评论页面2addComments.javaServlet类执行添加信息操作3DBConnectionDAO操作类获取数据库7.5实现音乐盒功能功能说明:在上传完音乐后,用户可以创建属于该用户自己的音乐盒。点击添加音乐盒按
13、钮,相关添加操作在后台servlet类中做了设置,并获取数据库进行连接查询,查看数据库中是否已存在相同音乐,如果没有则将音乐添加到数据库中,添加成功后,通过后台的servlet相关类setbox.java进行操作音乐盒中的播放列表,并通过JDOM组件动态创建XML播放 列表,并且在主页动态显示。描述:编号名称类型描述1index.jsp文件主页面2Musicbox.javaServlet类执行添加音乐盒操作3DBConnectionDAO操作类获取数据库4setbox.javaServlet类操作音乐盒播放列表5creatXML.javaJDOM组件动态创建XML播放列表5Music.box.
14、jsp文件音乐盒页面7.6实现短信发送功能功能说明:用户进入主页面后,点击短消息,进入发送短信页面。发送短信时,信息的相关内容在后台的servlet相关类message.java类中做了相关设置。当用户输入完相应的信息后,可以点击提交按钮,系统自动将信息添加到数据库中,添加成功后显示发送成功的提示框,对方可以进行信息的查看和接受。当用户输入的信息不满足要求时,会发出错误信息提示,同时不满足要求的信息也不会添加到数据库中。因此用户需要进行修改内容,然后在重新提交。描述:编号名称类型描述1message.jsp文件发送短信页面2message.javaServlet类执行发送信息操作3DBConn
15、ectionDAO操作类获取数据库7.7实现短信接收删除功能功能说明:用户进入主页面后,点击查看短消息 ,看是否有已接受的未读短信,进行删除操作,删除操作通过后台的sevlet相关类desmessage.java进行执行,操作成功后 ,自动 更新数据库,并在 主页面上显示删除成功。描述:编号名称类型描述1showmessage.jsp文件显示短信页面2delmessage.javaServlet类执行删除信息操作3DBConnectionDAO操作类数据库连接更新7.8实现点歌功能功能说明:用户上传完歌曲可以进行点歌功能,点击sendmusic页面的点歌,可以为对方点歌,并 进行留言和信息发送
16、。点歌和信息发送,通过后台的servlet相关类sendmusic.java类进行执行验证,操作成功后,自动更新数据库,更新成功后,显示信息发送成功提示框。对方可以进行信息接收和歌曲试听。描述:编号名称类型描述1sendmusic.jsp文件点歌页面2sendmusic.javaServlet类执行点歌操作3DBConnectionDAO操作类数据库连接更新7.9实现超级用户登陆功能功能说明: 进入后台主界面后,页面中显示登录层供管理员填写信息,当用户填写相关信息后时,struts的login.java调用后 判断是否存在此用户,并返回判断的信息;若以上条件满足时,登录按钮可用,否则,登录按钮
17、不可用。完成输入信息后,点击登录按钮进行超级用户登录操作,登录操作完成后,系统自动为用户跳到主页面。描述:编号名称类型描述1Index.jsp登录文件登录页面2Login.java登录类存放所有的执行方法3DBConnection.javaDAO数据库获取4New.jsp文件添加管理员页面7.10实现修改当前超级管理员密码功能 功能说明: 当超级管理员登录在线音乐管理系统的后台,进入修改密码页面。struts通过调用后台的servlet相关类changepwd.java执行, 判断是否存在此用户,并返回判断的信息;当用户输入密码和确认密码时,判断密码是否和确认密码相同;若以上两个条件同时满足,
18、提交按钮可用,否则,提交按钮不可用。完成输入信息后,点击提交按钮进行超级用户修改密码操作,修改操作完成后,系统自动更新数据库,并显示修改成功提示框。 描述:编号名称类型描述1changepwd.jsp改密文件修改密码页面2changeped.javaservle类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取4New.jsp文件添加管理员页面7.11实现删除注册用户功能功能说明: 当管理员进入后台系统的uer.jsp页面后,不仅可以查看所有注册用户的信息,还可以删除任何一个注册用户。通过调用后台的servlet相关类deluser.java类,检查是否存在该用户,
19、并执行删除操作, 删除成功后,自动更新数据库,并在页面中成功显示。描述:编号名称类型描述1user.jsp文件查看删除用户页面2deluser.javaservle类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取7.12实现删除注册用户功能 功能说明:当超级管理员登录在线音乐管理系统的后台后,不仅可以查看所有上传音乐的信息,还可以删除任何一个上传音乐。通过调用后台的servlet相关类delmusic.java类,检查是否存在此用户,并执行删除操作, 删除成功后,自动更新数据库,并在页面中成功显示。描述:编号名称类型描述1music.jsp文件查看删除音乐页面2d
20、elmusic.javaservle类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取7.13实现友情链接功能 功能说明:当超级管理员登录在线音乐管理系统的后台后,不仅可以添加友情链接的信息的信息,还可以删除任何已存在的超级链接。通过调用后台的servlet相关类link.java类,执行插入操作, 插入成功后,自动更新数据库,并在当前页面中成功显示,能进行删除操作,且 能在前台中成功显示链接。描述:编号名称类型描述1link.jsp文件添加链接页面2link.javaservle类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取4Ind
21、ex.jsp文件主页面 附录(实现代码)1. AJAX技术运用: public String execute() throws Exception ServletActionContext.getResponse().setCharacterEncoding("GB2312");/设置页面编码格式PrintWriter out = ServletActionContext.getResponse().getWriter(); /获取输出流/设置页面的相关信息ServletActionContext.getResponse().setHeader("Pragma&q
22、uot;, "No-cache");ServletActionContext.getResponse().setHeader("Cache-Control","no-cache");ServletActionContext.getResponse().setDateHeader("Expires", 0);/生成 文件名String fileType = getUploadFileName().substring(getUploadFileName().lastIndexOf(".");Simp
23、leDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); /设置时间格式Date dt = new Date(); /获取当前时间Random rd = new Random(); /随机变量setUploadFileName(sdf.format(dt) + rd.nextInt(9999) + fileType); /生成上传文件的名字if ("audio/mpeg".equals(getUploadContentType() /判断音乐类型 /获取文件输出流FileOutputStream fos =
24、 new FileOutputStream(getSavePath() + ""+ getUploadFileName(); /获取文件输入流 FileInputStream fis = new FileInputStream(getUpload();byte buffer = new byte10240; /创建字节数组int len = 0;while (len = fis.read(buffer) > 0) /实现文件上传fos.write(buffer, 0, len);String filePath = "upload" + getUpl
25、oadFileName(); /创建文件路径属性out.println(function.PlutoJump("上传成功,请认真填写歌曲内容!", "upload.jsp?path=" + filePath); else /当文件上传失败out.println(function.PlutoJump("文件类型必须为MP3!", "uploadmusic.jsp");return null;<h2 class="title">上传音乐第一步(上传音乐)</h2><di
26、v class="entry"><p><form id="form1" name="form1" method="post"action="upload.action?path=<%=request.getParameter("path")%>"class="niceform" onsubmit="return check();"><input type="hidden"
27、; name="path"value="<%=request.getParameter("path")%>" /><table width="80%" border="0" align="center"><tr><td height="31"><div align="center">您的音乐已经上传成功,您可以点下面的播放器进行试听!</div></td
28、></tr>public class upload extends ActionSupport private String title;private String singer;private String special;private String path;private String value;public String getValue() return value;public void setValue(String value) this.value = value;public String getTitle() return title;public
29、 void setTitle(String title) this.title = title;public String getPath() return path;public void setPath(String path) this.path = path;public String getSinger() return singer;public void setSinger(String singer) this.singer = singer;public String getSpecial() return special;public void setSpecial(Str
30、ing special) this.special = special;Override/编写execute()方法 public String execute() throws Exception ServletActionContext.getResponse().setCharacterEncoding("GB2312");/设置页面的编码格式PrintWriter out = ServletActionContext.getResponse().getWriter();/获取输出流/获取HttpservletRequest对象HttpServletRequest r
31、equest = ServletActionContext.getRequest();HttpSession session = ServletActionContext.getRequest().getSession();/设置页面的相关信息ServletActionContext.getResponse().setHeader("Pragma", "No-cache");ServletActionContext.getResponse().setHeader("Cache-Control","no-cache"
32、);ServletActionContext.getResponse().setDateHeader("Expires", 0);String filePath = request.getParameter("path"); /获取路径参数if (function.isInvalid(title) | function.isInvalid(singer)| function.isInvalid(special) | function.isInvalid(path) /判断参数是否为空out.println(function.PlutoJump("
33、;任何一项都不能为空!", "upload.jsp?path="+ filePath); else filePath = filePath.replace("upload", "upload");/ 获取文件后缀DBConnection conn = new DBConnection(); /获取数据库连接long time = new Date().getTime(); /获取上传时间 /当操作数据库成功if (conn.execute("insert into music(title,singer,specia
34、l,value,time,click,url) values('"+ title+ "','"+ singer+ "','"+ special+ "','"+ value + "','" + time + "',0,'" + filePath + "')") / 添加TIP信息String tip = "" + session.getAttribute
35、("PlutoUser").toString()+ " 分享了歌曲 " + title + ""conn.execute("insert into tip(value) values('" + tip + "')");out.println(function.PlutoJump("提交成功!", "index.jsp"); else /操作数据库失败out.println(function.PlutoJump("提交失败!&quo
36、t;, "upload.jsp?path="+ filePath);return null;2. JDom组件动态创建XML播放列表: public class creatXML private String str = "3,2,4,5,6,7"private String playListArr;private String path;public String getPath() return path;public void setPath(String path) this.path = path;public void bulidXML(St
37、ring id,HttpServletRequest request,String userName) throws IOException, JDOMException, SQLException /创建XML头Element playList = new Element("playlist");Document Doc = new Document(playList);playList = Doc.getRootElement();playList.setAttribute("version", "1");playList.setAttribute("xmln","/ns/0/");Element title = new Element("title");title.setText("Pluto's Player&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44769-2024能源互联网数据平台技术规范
- 文书模板-新型智慧城市运行中心建设情况报告
- 元素与物质分类-2023年中考化学一轮复习(解析版)
- 济宁2024年统编版小学6年级上册英语第三单元真题
- 2024-2025学年江苏省镇江某中学高二(上)月考物理试卷(10月)(含答案)
- DB4107T 501-2024 知识产权保护中心服务规范 一般要求
- 五年级科学下册期末试题分类汇编:地表缓慢变化
- 2024年锅炉自控优化装置项目投资申请报告代可行性研究报告
- 2024年安全员C证考试100题及解析
- 纤维增强复合材料防眩格栅技术规范(征求意见稿)
- 人教版(2024年新教材)七年级上册英语Unit 5 Fun Clubs 单元整体教学设计(5课时)
- 【课件】庆祝新中国成立75周年主题班会课件
- 云南开放大学事业单位公开招聘82人高频500题难、易错点模拟试题附带答案详解
- 2024-2025学年新教材高中政治 第二单元 世界多极化 4.1 时代的主题教案 新人教版选择性必修1
- 5 新走近我们的老师 第一课时(教学设计)-部编版道德与法治三年级上册
- 国画课程设计报告
- 2024年四川省专利审查协作中心招聘笔高频考题难、易错点模拟试题(共500题)附带答案详解
- 肌肉注射操作并发症的预防及处理
- 江苏省徐州市六县2024-2025学年高一数学上学期期中考试试卷
- JTG-T-F20-2015公路路面基层施工技术细则
- 2024山东能源集团中级人才库选拔【重点基础提升】模拟试题(共500题)附带答案详解
评论
0/150
提交评论