个人音乐管理系统项目文档.docx

上传人:小飞机 文档编号:4934807 上传时间:2023-05-24 格式:DOCX 页数:31 大小:633.09KB
返回 下载 相关 举报
个人音乐管理系统项目文档.docx_第1页
第1页 / 共31页
个人音乐管理系统项目文档.docx_第2页
第2页 / 共31页
个人音乐管理系统项目文档.docx_第3页
第3页 / 共31页
个人音乐管理系统项目文档.docx_第4页
第4页 / 共31页
个人音乐管理系统项目文档.docx_第5页
第5页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《个人音乐管理系统项目文档.docx》由会员分享,可在线阅读,更多相关《个人音乐管理系统项目文档.docx(31页珍藏版)》请在三一办公上搜索。

1、个人音乐管理系统项目文档本次的毕业实习设计是基于Web技术的在线音乐管理系统。此系统通过 AJAX+Struts 2.x+JSP框架技术来实现。数据库管理系统则为MySQL。此系统分 为两部分:管理员模块(后台部分)和注册用户模块(前台部分)。在具体实现 各个模块的相应功能时,利用AJAX和JSP技术实现该系统的相应页面,利用 Struts 2.x框架技术实现业务逻辑。一.系统功能结构根据在线音乐管理系统,可将其分为前台和后台两个部分。从前台主界面 可以发现注册用户可以实现如下功能:用户注册,用户登录,分享歌曲,下载歌 曲,填写关于音乐的评论,音乐盒,点歌,试听歌曲,发送和接受短消息。前台功能

2、结构如图1所示图1在线音乐管理系统前台结构图从后台主界面可以发现超级管理员可以实现如下功能:管理员登录,音乐管理, 友情链接,用户管理,添加管理员,修改密码和关闭。后台功能结构如图2所示图2在线音乐管理系统后台结构图二业务流程图如图所示Q三.数据库概念设计根据系统所做的需求分析,规划出本系统中使用的数据库实体 分别为用户 信息实体,管理员档案实体,音乐信息实体,留言信息实体,短信信息实体。下 面将介绍几个关键实体的E-R图。1.用户信息实体用户信息实体包括编号,用户名,用户的密码,音乐盒。考生档案实体的 E-R图如图1.4所示。图1.4用户信息实体E-R图2.音乐信息实体音乐信息实体包括编号,

3、音乐的标题,音乐的歌曲,音乐所属专辑,上传时图1.5音乐信息实体E-R图3.短信信息实体音乐信息实体包括编号,发短信的用户,接受短信的用户,短信的标题,短 信的内容,发短信的时间,发短信的次数。短信信息实体的E-R图如图1.6 所示。上发短信的 用户接收短信 的用户短信的标题发短信 的时间短信信息短信的内容发短信的次数图1.6短信信息实体E-R图四.用例图(个人)1. 用户具有用户信息,每个用户具有一种账户状态用于标识权限;2. 用户空间与用户一一对应,具有空间属性;3. 每个用户都可以注册多个账户;4. 用户信息:用户名,用户密码;5. 用户注册:用户名,用户密码密码,确认密码;6. 已注册

4、用户,直接登陆:输入用户名及密码;7. 修改密码:输入密码、新密码、重复密码;登录五.数据库的逻辑结构各数据表的结构Admin(管理员信息表)管理员信息表用来保存管理员信息,该表的结构如图1.1所示。表1.1 admin表的结构字段名数据类型是否为空是否主键默认值描述idintno是ID(自动编 号)NameVarchar(20)yes管理员用户 名PwdVarchar(32)yes密码comments(留言信息表)留言信息表用来保存留言信息,该表的结构如图1.2所示。表1.2 comments表的结构字段名数据类型是否为空是否主键默认值描述IdintnoyesId号咱动 编号)valuete

5、xtnonull留言的内容nameVarchar(20)nonull留言人的昵称Music_idInt(4)nonull音乐编号TimeVarchar(13)nonull发表评论时 间link(链接表)链接表用来保存链接信息,该表的结构如图1.3所示。表1.3 link表的结构字段名数据类型是否为空是否主键默认值描述idintno是ID(自动编 号)valuetextyes友情链接的 值titleVarchar(100 )yes友情链接的 标题Message (短信信息表)短信信息表用来保存短信信息,该表的结构如图1.4所示。表1.4 message表的结构字段名数据类型是否为空是否主键默认值

6、描述IdintnoyesId号咱动 编号)FromVarchar(20)发短信的用 户ToInt(4)接受短信的 用户TitleVarchar(200 )短信的标题valuetextnonull短信的内容TimeVarchar(13)nonull发短信的时 间NewInt(1)发短信的次Music (音乐信息表)音乐信息表用来保存音乐信息,该表的结构如图1.5所示。表 1.5 comments 表的结构字段名数据类型是否为空是否主键默认值描述IdintnoyesId号咱动 编号)TitleVarchar(50)音乐的标题singerVarchar(30)音乐的歌曲specialVarchar(

7、30)音乐所属专 辑valuetextnonull音乐标题TimeVarchar(13)nonull上传时间clickInt(5)音乐试听次 数urllongtext音乐的地址Tip (提示信息表)提示信息表用来保存提示信息,该表的结构如图1.6所示。表1.6 comments表的结构字段名数据类型是否为空是否主键默认值描述IdintnoyesId号(自动 编号)valuetext提示内容user(用户信息表)用户信息表用来保存用户信息,该表的结构如图1.7所示。表1.7 user表的结构字段名数据类型是否为空是否主键默认值描述idintno是ID(自动编 号)NameVarchar(20)y

8、es用户名PwdVarchar(32)yes用户密码Music_boxlongtext音乐盒六.数据表之间的关系设计jenunffaliiiuser4id:n:Hiame:rarchflr(20) 却州:丁5十廿:38 4MLsk_b(:l3(igbEt4enrfira:jg 卜admin4id: nt+nanie:u3rchar(20i+pftd:7archa:5canimeiitsHd; ntHiani:MBrchar(2l0iHnuEkJd: n 啊+EniE:VBrcha也3iumerationmeagE-d:HPFram 泗chanpOj T。;*可加例 -idrivarthariZ

9、lOj H3Le:teKt -4ime:7archarl +Hen:int(l;musicHhht RtEwardiarpO -3nger:varrhari30) 母ewl:也rchE爻) p/aLeitent 4-trE:varEhar(13) Win盼七系统总体设计7.1用户注册功能实现功能说明:用户点击首页中的注册链接后,页面中显示注册层供用户填写 注册信息,当用户入新注册的用户名时,struts的register.java调用后判断 是否存在同名用户,并返回判断的信息;当用户输入密码和确认密码时,判断密 码是否和确认密码相同;若以上两个条件同时满足,注册按钮可用,否则,注册 按钮不可用

10、。完成输入信息后,点击注册按钮进行用户注册操作,注册操作完成 后,系统自动为用户跳到登录页面。描述:编号名称类型描述1index.jsp页面文件首页页面3Register.java注册类执行注册操作4Register.jsp页面文件用户注册信息5Login.java登录类执行登录操作7.2登陆功能实现功能说明:用户点击完登陆链接后,在页面中显示,用户输入完用户名和 密码后点击登陆按钮完成登陆操作,退出登录时点击注销登录。LI1描述:编号名称类型描述1Index.jsp登录文件登录页面2Login.java登录类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取4Log

11、out.java注销登录类点击注销登录按钮后退出登录7.3实现在线音乐上传功能功能说明:用户进入主页面后,点击上传歌曲,进入上传歌曲页面。上传 歌曲时,音乐的形式在后台的servlet相关类uploadmusic.java类中做了相关 设置。当用户上传完歌曲后,可以点击下一步按钮,显示上传成功提示框,系统 自动将歌曲添加到数据库中,同时跳转到音乐更新页面,填写音乐相关信息,主 题的字数和内容的字数在后台的upload.java中都做了设置,当用户输入完相 应的信息后,可以点击提交按钮,系统自动将信息添加到数据库中,添加成功后, 显示添加成功提示框,跳转到主页可以进行音乐播放试听。uploadI

12、 u p I d aj占曲d. j S pII:上还甚:Iy I111111J5:更做旨11 -5鸵侦1T-T描述:编号名称类型描述1index.jsp文件主页面2Uploadmusic.javaServlet 类执行上传音乐操作3DBConnectionDAO操作类获取数据库4Upload.javaservlet执行音乐更新操作5Upload.jsp文件音乐更新页面7.4实现添加评论功能功能说明:当用户上传完音乐信息后,点击阅读全文,跳转到添加评论页面, 可以输入信息,主题的字数和内容的字数在后台的servlet相关类addComments 中都做了设置。当用户输入完相应的信息后,可以点击提

13、交按钮,系统自动将信 息添加到数据库中,添加成功后可以查看输入的内容。当用户输入的信息不满足 要求时,会发出错误信息提示,同时不满足要求的信息也不会添加到数据库中。 因此用户需要进行修改内容,然后在重新添加。导抑它111IIIUIIII己工涅杏罪:由I|1I|II建息姿,寿蹒II*I1L!,长匏)品IInTIIIII描述:编号名称类型描述1show.jsp文件添加评论页面2addComments.javaServlet 类执行添加信息操作3DBConnectionDAO操作类获取数据库7.5实现音乐盒功能功能说明:在上传完音乐后,用户可以创建属于该用户自己的音乐盒。点击 添加音乐盒按钮,相关添

14、加操作在后台servlet类中做了设置,并获取数据库进 行连接查询,查看数据库中是否已存在相同音乐,如果没有则将音乐添加到数据 库中,添加成功后,通过后台的servlet相关类setbox.java进行操作音乐盒中 的播放列表,并通过JDOM组件动态创建XML播放 列表,并且在主页动态显示。描述:编号名称类型描述1index.jsp文件主页面2Musicbox.javaServlet 类执行添加音乐盒操作3DBConnectionDAO操作类获取数据库4setbox.javaServlet 类操作音乐盒播放列表5creatXML.javaJDOM组件动态创建XML播放列表5Music.box.

15、jsp文件音乐盒页面7.6实现短信发送功能功能说明:用户进入主页面后,点击短消息,进入发送短信页面。发送短信 时,信息的相关内容在后台的servlet相关类message.java类中做了相关设置。 当用户输入完相应的信息后,可以点击提交按钮,系统自动将信息添加到数据库 中,添加成功后显示发送成功的提示框,对方可以进行信息的查看和接受。当用 户输入的信息不满足要求时,会发出错误信息提示,同时不满足要求的信息也不 会添加到数据库中。因此用户需要进行修改内容,然后在重新提交。描述:编号名称类型描述1message.jsp文件发送短信页面2message.javaServlet 类执行发送信息操作3

16、DBConnectionDAO操作类获取数据库7.7实现短信接收删除功能功能说明:用户进入主页面后,点击查看短消息,看是否有已接受的未读 短信,进行删除操作,删除操作通过后台的sevlet相关类desmessage.java进 行执行,操作成功后,自动 更新数据库,并在主页面上显示删除成功。侦:信晨操作口描述:编号名称类型描述1showmessage.jsp文件显示短信页面2delmessage.javaServlet 类执行删除信息操作3DBConnectionDAO操作类数据库连接更新7.8实现点歌功能功能说明:用户上传完歌曲可以进行点歌功能,点击sendmusic页面的点歌, 可以为对方

17、点歌,并进行留言和信息发送。点歌和信息发送,通过后台的 servlet相关类sendmusic.java类进行执行验证,操作成功后,自动更新数据 库,更新成功后,显示信息发送成功提示框。对方可以进行信息接收和歌曲试听。2:WiiE04:卧如,更砌据可TI5:亡翠成:加描述:编号名称类型描述1sendmusic.jsp文件点歌页面2sendmusic.javaServlet 类执行点歌操作3DBConnectionDAO操作类数据库连接更新7.9实现超级用户登陆功能功能说明:进入后台主界面后,页面中显示登录层供管理员填写信息,当 用户填写相关信息后时,struts的login.java调用后判断

18、是否存在此用户, 并返回判断的信息;若以上条件满足时,登录按钮可用,否则,登录按钮不可用。 完成输入信息后,点击登录按钮进行超级用户登录操作,登录操作完成后,系统 自动为用户跳到主页面。6萱素龄还成匚0匚1.布讦不灵Fl:描述:编号名称类型描述1Index.jsp登录文件登录页面2Login.java登录类存放所有的执行方法3DBConnection.javaDAO数据库获取4New.jsp文件添加管理员页面7.10实现修改当前超级管理员密码功能功能说明:当超级管理员登录在线音乐管理系统的后台,进入修改密码页 面。struts通过调用后台的servlet相关类changepwd.java执行,

19、判断是否存在 此用户,并返回判断的信息;当用户输入密码和确认密码时,判断密码是否和确 认密码相同;若以上两个条件同时满足,提交按钮可用,否则,提交按钮不可用。 完成输入信息后,点击提交按钮进行超级用户修改密码操作,修改操作完成后, 系统自动更新数据库,并显示修改成功提示框。rc h a n g p w I I L a g i n .DBConnecn ew. j s pd. j S pjavai i DTI.1I 1 |腥心 |!i E修培玛辛IjITIII_I叫默菽迁 期I!I,3滴.勰起堑 J.I1tni:玉目A Ct Q ”类:i1: 欧由E1f-验蹄虬描述:编号名称类型描述1chang

20、epwd.jsp改密文件修改密码页面2changeped.javaservle 类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取4New.jsp文件添加管理员页面7.11实现删除注册用户功能功能说明:当管理员进入后台系统的uer.jsp页面后,不仅可以查看所有注 册用户的信息,还可以删除任何一个注册用户。通过调用后台的servlet相关类 deluser.java类,检查是否存在该用户,并执行删除操作,删除成功后,自动 更新数据库,并在页面中成功显示。1:萱看所有用户0新I2:删除操作03:*断参数是否为空0!F iI 4:删除成功,更新数据库%! ITJ5:删除

21、成血返回011描述:编号名称类型描述1user.jsp文件查看删除用户页面2deluser.javaservle 类存放所有的执行方法3DBConnection.javaDAO操作类数据库获取7.12实现删除注册用户功能功能说明:当超级管理员登录在线音乐管理系统的后台后,不仅可以查看所 有上传音乐的信息,还可以删除任何一个上传音乐。通过调用后台的servlet 相关类delmusic.java类,检查是否存在此用户,并执行删除操作,删除成功 后,自动更新数据库,并在页面中成功显示。n i u. s i c -J s pd e L ni u s i c. javaD B C qn n ec t

22、ion. ja jaI1:查看所有音乐0 0) /实现文件上传fos.write(buffer, 0, len);String filePath = upload + getUploadFileName();/创建文件路径属性out.println(function. PlutoJump(上传成功,请认真填写歌曲内容!, upload.jsp?path= + filePath); else /当文件上传失败out.println(function. PlutoJump(文件类型必须为MP3 !,uploadmusic.jsp);return null;上传音乐第一步(上传音乐)form id=

23、form1 name=form1 method=postaction=upload.action?path= class=niceform onsubmit=return check(); input type=hidden name=pathvalue= / 您的音乐已经上传成功,您可以点下面的播放器进行试听!public class upload extends ActionSupport private String title;private String singer;private String special;private String path;private String

24、value;public String getValue() return value;public void setValue(String value) this. value = value;public String getTitle() return title;public void setTitle(String title) this.title = title;public String getPath() return path;public void setPath(String path) this.path = path;public String getSinger

25、() return singer;public void setSinger(String singer) this.singer = singer;public String getSpecial() return special;public void setSpecial(String special) this.special = special;Override编写execute()方法public String execute() throws Exception ServletActionContext. getResponse().setCharacterEncoding(GB

26、2312);/设置页 面的编码格式PrintWriter out = ServletActionContext.getResponse().getWriter();/获取输出 流获取 HttpservletRequest 对象HttpServletRequest request = ServletActionContext. getRequest();HttpSession session = ServletActionContext. getRequest().getSession();/设置页面的相关信息 ServletActionContext. getResponse().setHea

27、der(Pragma, No-cache); ServletActionContext. getResponse().setHeader(Cache-Control”, no-cache);ServletActionContext. getResponse().setDateHeader(Expires”, 0);String filePath = request.getParameter(path);/获取路径参数if (function. isInvalid(title) | | function. isInvalid(singer)| | function. isInvalid(spec

28、ial) | | function. isInvalid(path) /判断 参数是否为空out.println(function. PlutoJump(任何一项都不能为空!, upload.jsp?path=+ filePath); else filePath = filePath.replace(upload”, upload);/ 获取文件后缀 DBConnection conn = new DBConnection(); 获取数据库连接 long time = new Date().getTime();/获取上传时间当操作数据库成功 if (conn .execute(insert i

29、nto music(title,singer,special,value,time,click,url) values(” + title + , + singer + , + special + ,+ value + , + time + ,0, + filePath + ) /添加TIP信息String tip = + session.getAttribute(PlutoUser).toString() + 分享了歌曲:+ title + ;conn.execute(insert into tip(value) values( + tip + ); out.println(function

30、. PlutoJump(提交成功! , index.jsp); else 操作数据库失败out.println(function.PlutoJump(提交失败! , 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 setPa

31、th(String path) this. path = path;public void bulidXML(String 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(vers

32、ion, 1);playList.setAttribute(xmln,http:/xspf.org/ns/0/); Element title = new Element(title);title.setText(Plutos Player);playList.addContent(title);/头结束Element trackList = new Element(trackList);playList.addContent(trackList);/trackListDBConnection conn = new DBConnection();获取数据库连接for (int i=0;iid.

33、length;i+)ResultSet rs = conn.executeQuery(select * from music where id = +idi+);rs.next();String music_title = rs.getString(title); 获取标题String music_singer = rs.getString(singer); 获取歌手String music_url = rs.getString(url);获取歌曲的 URL 地址Element track = new Element(track);Element annotation = new Elemen

34、t(annotation); annotation.setText(music_title + - + music_singer); track.addContent(annotation);Element location = new Element(location); location.setText(./ + music_url);track.addContent(location);trackList.addContent(track);/获取查询结果ResultSet userRs = conn.executeQuery(select id from user where name =+userName+);userRs.next();String user_id = userRs.getString(id); 获取 idXMLOutputter XMLOut = new XMLOutputter();创建 XMLOutputter 对象XMLOut.output(Doc, newFileOutputStream(request.getSession().getServletContext().getRealPath(/player/xml/ + user_id + .xml);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号