版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北第二师范学院本科毕业论文分类号密级UDC编号本科毕业论文(设计)题目基于JavaEE的微博平台设计院系计算机学院专业名称计算机科学与技术指导教师职称讲师二O一三年五月
湖北第二师范学院学位论文原创性说明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:2013-5第1章绪论1.1研究背景微博这个轻媒介让传播变得非常简单:随手点个转发,就能辐射到周边的人。平常一个冷笑话就能有上万转发,网上的一个热门话题如前段时间的“杜甫很忙”以及“甄嬛体”等各种网络文体的兴起,这些话题都能引起公众的广泛注意和参与。而这些参与一方面拉近了精英与草根的距离,使人们能够更好地交流探讨;另一方面也是人们的生活更加的丰富多彩,人们的情绪的能够有更多的途径来表达,信息的传递与获得也更加的简便快速。而现阶段微博更是有带有一种媒体属性,每个现阶段中国发生的热门事件都能够在微博上得到广泛的传播,而广大的用户群产生的巨大围观效应,也使得当前中国的许多问题的解决更加快速,小到可以用微博解救声称自杀的人,可以随手拍解救被拐儿童,大到监督政府的办事方法执法公正,也揭露出许多当前看来非常敏感的事件,对推动中国的法制与民主建设有着很大的积极意义。1.2发展现状最早出现的微博是Twitter,而中国现在最大的微博竞争对手是腾讯微博和新浪微博。相比较于Twitter,新浪和腾讯都增加了评论功能。而对比与国外的微博,中国的微博具有特殊的媒体性,就是依赖这千千万万的草根去分享自己的状态。这当中肯定有很多是不足以成为公共信息的,更重要的是公共事件的发生,诸多细节都会被放在显微镜下仔细观察。简而言之,西方人使用社交网络,就是在share自己的生活,是真正的socialnetwork;中国人使用社交网络,是想和朋友一起消费内容,这个叫socialmedia。1.3研究意义微博,是微型博客的简称,是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组件个人社区,以少量文字更新信息,并实现即时分享。现在微博已经成为了人们生活中不可或缺的一部分,亦是人们交流互相了解对方新闻的快速途径。微博刚刚走进人们的视野就得到了人们的青睐。微博广泛的分布在桌面、浏览器、移动终端等多个平台上,用户基数大,用户可以以迅速的方式随时随地了解不同地方的新闻,或者朋友的最新动态,也可以快速的发布自己的所见所闻跟所有人分享。微博符合了大多数人如今的需求,快速、便捷,而且其原创性高,随时记录随时分享。第2章需求分析2.1技术分析开发本系统所需要的软硬件环境如下:WindowsXP系统,JDK5.0或以上版本Tomcat6.0或以上版本,MySQL5.0或以上版本。1.JSP技术JSP的是有SUN公司倾力推出的一种动态网页技术设计标准。它在传统的静态页面文件中加入JAVA程序片段和JSP标记,然后形成JSP页面。在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。JSP技术是用JAVA作为它的脚本语言,它最大的优势在于跨平台性,它是JAVA平台的重要组成部分,运用它来开发WEB应用程序可以使得程序和系统具有高度的移植性延展性和可靠安全。2.MySQLMySQL是一个最受欢迎的开源数据库管理系统,任何人都可以从hitemet上下载和使用MySQL而不需要支付任何费用。同时也可以研究其源代码,并根据需要进行修改。与其他的大型数据库相比,MySQL自有它的不足之处,如规模小、功能有限但对于中、小型应用系统是非常理想的,开源性降低了总体成本。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。3.apache-tomcatTomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,由Apache,Sun和其它一些公司及个人共同开发而成,,开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。4.jfreechartJFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications,applets,servlets以及JSP等使用所设计。JFreeChart可生成饼图(piecharts)、柱状图(barcharts)、散点图(scatterplots)、时序图(timeseries)、甘特图(Ganttcharts)等等多种图表.
5.jQueryJquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k),它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+)。jQuery使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。2.2体系结构这个系统采用的是B/S模式进行设计,B/S指的是浏览器/服务器模型,一个典型的三层B/S模型如下图所示所示:图2-1浏览器/服务器结构微博管理系统是一个基于Web的三层架构分布式应用系统:注册用户、管理员面层,浏览层,数据层,这三层对应在逻辑上的上面三层,即注册用户提供注册信息后,浏览层进行甄别并进行记录,将信息写入数据层,数据层到数据库查询,将注册信息和微博内容等返回,显示在Web页面上。这个模式拥有很好的安全性,安全防火墙技术确保后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。2.3系统功能分析本文所论述的微博系统分由微博前台系统和微博后台两部分系统共同组成,对于前台用户而言分为未注册的游客和已经注册用户,微博后台只有拥有管理员权限的用户才可登陆进行微博后台数据的相关操作管理。2.3.1游客用户需求分析微博前台游客有两种行为,一是浏览他人微博主页,查看他人发表的微博信息以及对微博的评论信息;二是通过注册的方式,填写相应的注册信息成为微博注册用户,然后用该账号进行登录进入个人主页面。2.3.2注册用户需求分析经过注册的用户登录后,即进入自己的个人主页,拥有下列的行为:修改自己的个人的资料,包括昵称所在地等基本资料以及密码修改和头像的修改。可以发布文字或者图文微博并可评论、转发和收藏他人的微博信息。可以添加好友,即加关注,可查看好友信息。可以查看粉丝,即对自己加关注的人。可在主页中查看自己的历史微博信息,分页显示。还可以参与微博话题的谈论投票等等。查看博客浏览和网站内用户信息时,需要提供查询功能,以方便快速找到想要的东西。根据前台用户的需求分析,可得如图2-2的前台用户用例图。图2-2前台游客与注册用户的用例图2.3.3后台管理员需求分析对于微博后台而言,可以存在权限不同的管理员的用户,它拥有下列的行为:前台用户管理,可以对前台用户进行账户禁用和再启用或者注销账号的操作,分页显示,可批量操作。后台用户管理,后台用户可分为一般用户、管理员和超级管理员,不同的用户拥有的权限不同,一般默认超级管理员拥有最高权限,可为其他后台用户赋予权限,并可添加用户。在这个模块里,具备权限的人可以为各个后台用户分配不同的权限管理不同的模块。评论管理,可以查看前台微博信息的评论内容,分页显示,可进行批量删除。微博管理,分页显示所有前台用户发布的微博信息,可进行批量删除和禁用或者解禁用。好友关注度比较,可以按照关注人数的由高到低分页显示用户的被关注情况,并可查看具体的关注情况(被关注人与关注人)。微博热议,可以添加时下比较流行的一些话题供前台用户讨论投票等等,以及查看热议情况,查看投票数等等;并可禁用或反禁用热议话题和直接删除话题。收藏管理,管理前台用户的微博收藏信息,并可禁用或反禁用用户收藏和直接删除收藏。根据后台用户的需求分析,可得如图2-3后台管理员用例图。图2-3后台管理员用例图第3章系统设计与实现3.1系统的功能模块在系统功能分析的基础上,得到了本系统的系统模块图。系统的模块图说明了系统的适用范围以及所要完成的功能。此系统中设计的主要模块如图3-1所示,前台主要包括七个模块,分别是:会员注册、会员登录、微博发布、个人信息、微博查询、微博好友、热议话题等模块。后台主要包括七个模块,分别是:前台用户管理模块、后台用户管理模块、评论管理、微博管理、好友关注度比较、微博热议模块和微博收藏管理模块。系统主要模块介绍如下:图3-1系统模块图本系统主要完成博客的发布浏览与管理的功能,因此,在逻辑上可以将系统分为博客浏览系统和博客管理系统两部分,同时,系统的所有数据都需通过一个数据库系统来实现查询、更新和输入,所以在总体上可将总系统分为博客浏览系统、博客管理系统和数据库系统三个系统,对本系统操作的数据源有普通浏览者、博客用户和管理员三种。数据库设计的合理与否,安全性,稳定性这些方面都直接影响着网站的运作。一个好的数据库设计方案,往往能够让网站的效率事半功倍。所以在对数据库的设计要格外的悉心,考虑的要格外周全。系统数据流图如下:图3-2数据总流图3.2系统功能设计本系统是基于JSP技术设计的使用方便,简单操作,界面简洁,清晰易懂的web系统,连接数据库后,在浏览器中键入文件名即可启动系统。3.2.1微博系统前台功能设计(1)用户信息管理 注册时用户输入自己的基本信息,用户名密码不得为空,登陆时候,输入相应用户名密码,经过验证正确后方可登陆个人信息主页面,进入登陆界面用户可以通过点击个人信息账号进行个人信息设置和修改。注册用户:图3-3新用户注册功能描述:用户注册信息,系统将用户前台页面输入的个人注册信息获取提交到后台(并不是系统后台),并且写入数据库。注册的信息包含:邮箱,创建密码(确认密码),昵称,性别,所在地和验证码,输入规范正确后方可注册微博用户成功。功能实现:用户前台注册页面输入相应信息,信息验证:对用户输入的邮箱验证、验证两次密码是否一致、验证验证码是否正确、性别和昵称验证是否填写。系统获取到对应表单信息后,提交到相应servlet(RegisterServlet.java)中去,并且通过biz(RegisterBizImpl)调用dao(UsersDaoImpl.java)层代码进行输入mysql数据库中。用户登录:图3-4用户登录功能描述:用户登录微博主页面,验证:用户名和密码是否输入。功能实现:提交到后台Servlet(LoginServlet),获取前台页面用户输入的用户名和密码内容,提交到Biz(LoginBizImpl)层,并调用Dao(UsersDaoImpl)层代码和数据库交互来验证用户输入信息是否正确。用户登陆之后即进入个人主页:图3-5个人主页设置个人信息:图3-6个人信息设置图3-7修改个人密码修改个人头像:图3-8上传个人头像功能描述:修改个人信息,包含修改个人简单信息、密码、头像,对两次密码进行判断功能实现:首先,用户进入此页面后,显示出用户自身全部信息,用户对此信息进行修改,并且把用户ID以隐藏表单形式显示在页面中,修改密码过程中验证两次密码输入是否一致,修改头像判断用户是否选择了新的头像,进入上传头像操作。用户将自己信息修改后,后台Servlet(ModifyServlet.java)获取前台用户提交信息,并且将此信息修改提交到Biz(ModifyBizImpl.java)层再调用到dao(ModifyDaoImpl.java)层实现数据库更新。(2)微博信息管理微博信息管理是系统模块中重要的组成部分,主要负责对用户微博信息的管理,包含发送微博,评论微博,转发微博,收藏微博,删除微博,对于微博的模糊查询和微博信息的分页展示。发送微博:图3-9发送微博功能描述:进入(个人信息)微博主页面后,在最醒目的位置,左上方显示微博发送控件,输入微博内容后点击发送即可实现微博发送功能,还可以添加图片,进行图片上传功能,将微博写入数据库中。功能实现:Servlet(SendMicroblogServlet.java)获取前台页面用户输入要发送微博的内容,并且(从回话中)获取登陆用户的ID,一起封装到微博(Microblog.java)的实体类中,然后提交到 biz(SendMicroblogBizImpl.java)层并且调用 dao(MicroblogDaoImpl.java)层来实现微博信息的(添加)发送。评论微博:功能描述:用户可以通过评论微博功能对自己希望评论的微博进行评论,并且紧随微博显示在微博后面。功能实现:Servlet(CommentMicroblogServlet.java)获取到前台用户对相应微博信息的评论内容,同时获取此微博信息的ID,然后封装论实体(Comment)类通过Biz(CommentMicroblogBizImpl.java)层,调用dao(CommentDaoImpl)层代码,实现添加评论信息。转发微博:功能描述:用户根据自己主观喜好的微博信息可进行转发操作,转发后会将此微博信息作为自己的微博进行显示,同时自己的粉丝也可以看到此微博信息。功能实现:Servlet(ForWardMicroblogServlet.java)获取到用户想要转发的微博信息ID,然后获取此微博信息内容,调用Biz(ForWardMicroblogBizImpl.java)层调用dao(MicroblogDaoImpl.java)层代码首先实现要转发的微博转发次数+1,其次作为转发者自己的微博,又要添加一条新的微博信息,要注意新添加的微博信息外键值将由其他的UID值转换为转发者的ID。收藏微博:功能描述:用户可以对所关注的人的微博进行收藏,其作用为不让自己的粉丝看到,和转发的作用正好相反。功能实现:在微博浏览页面中,点击收藏后,首先后台Servlet(CollectionMicroblogServlet.java)获取到用户所要收藏微博的信息,通过Biz(CollectionBizImpl.java)层调用Dao层(CollectionDaoImpl.java)来添加到收藏表中(收藏表有一个外键对应用户)。删除微博:功能描述:用户可以对自己发表过的微博进行删除,因此会伴随提示”删除微博,会连同相应的评论删除,是否继续?”, 因此新显示的微博信息将不会有此信息。功能实现:首先Servlet(DeleteMicroblogServlet.java)获得前台页面用户要删除微博的信息(ID),如果此微博信息和发送者是相同一个人的话,那么次信息执行删除操作,否则提示没有权限删除他人微博。执行删除操作,通过Biz(MircoblogBizImpl)层调用Dao(MircoblogDaoImpl)层执行微博表相应记录删除。微博模糊查询:功能描述:用户要搜寻相应微博信息,可以进行模糊查询。用户可以在模糊查询表单内搜索相应信息点击查询即可查出相应微博,但是如果没有相应信息则提示”没有搜索到相应微博信息”。功能实现:首先在Servlet(MicroblogFuzzyFindServlet.java)中获取模糊查询表单内容,通过Biz(MircoblogBizImpl)层调用Dao(MircoblogDaoImpl)层来查找相应信息,返回ArrayList集合信息。微博信息分页显示:功能描述:所有登陆者的微博和其关注人的微博信息都要在个人主页内分页显示,然后用户点击”上一页”或者”下一页”进行分页查找微博信息。功能实现:首先作为面向对象编程思想,要建立起一个相应的分页类第几页,数据信息的结合List),按照PageBean的思路来搜索数据库用户想要的相应页数。好友信息管理对好友管理是微博系统中一个非常重要的模块,通过对好友管理,用户可以完成添加关注操作,取消关注,互为好友,搜寻好友,等功能。对自己感兴趣的人进行好友操作,从而时刻关注好友的微博信息更新。添加关注AddAttention:功能描述:登陆的用户可以对没有加为关注的人进行添加关注操作,若被加者在操作前与该登陆者无关注和被关注的关系,则二人关系关注关系,既为单向关注关系。功能实现:用户点击了还没有关注的陌生人的关注后,首先Servlet(AddAttentionServlet.java)获取到要关注人的信息(ID),通过Biz(AttentionBizImpl)层判断调用Dao(AttentionDaoImpl)层来判断此用户是否是已经关注我的好友,如果没有此用户关注登陆者的信息,那么添加关注表,作为登陆者关注人的信息。反之,状态字段应相应改变,标志此用户和登陆者为互为关注关系。互为好友EachOtherFirends:功能描述:衔接上一功能说明,登陆者还可以添加自己的粉丝好友作为自己关注的人。功能实现:同样衔接上一功能说明,如果添加关注时候判断其好友已经是自己粉丝,那么状态关系表中状态字段应有所改变,状态为互为好 友。搜寻好友(换一换)FindFirends:功能描述:用户在自己的主页内同时要显示出自己还没有关注人的信息,同样可以通过换一换搜索还没关注人的陌生人信息。功能实现:很类似与分页显示微博信息,应用到PageBean功能,但是不同与分页显示的是分页显示是用户决定要看哪一页信息,换一换是由java随机数来决定显示哪一页陌生人信息。也就是通过java随机数来产生要显示的每一页信息。相应Servlet(FindFirendsServlet.java)生成java随机数来通过PageBean获取随机的页的陌生人信息。取消关注DeleteAttention:功能描述:用户还可以对已经加过的好友进行取消关注操作。静态页面:用户在除了登陆后的个人主页内还可以选择菜单进行进入我的好友管理静态页面,显示的所以好友,关注的好友信息,可以点击相应的取消关注操作。功能实现:首先Servlet(DeleteAttentionServlet.java)获取到所要取消关注人的信息(ID),思路和添加好友,互为关注的思路正好相反,通过Biz层调用Dao(AttentionDaoImpl.java)层,首先判断此用户是单向关注还是双向互为好友,如果是前者删除关系表中相应记录,如果是后者,不但要删除相应关系记录,还要修改关系表中状态字段值。自动登录AutoLogin:功能描述:如果用户在已经登录的状态下,推出浏览器,或者直接关机,当再次登录到首页时候,则显示该用户自动登录。功能实现:首先在用户登录表单内,有一个选择自动登录的复选 框,如果用户登录时勾上此复选框,则发送到Servlet(AutoLoginServlet.java)来执行Cookie回话机制,从而实现自动登录页面。如果用户推出系统后,那么用户在此登录时就不应该现在自动登录,因为此用户不希望自动登录此系统。部分代码如下://Cookie Stringkeep=request.getParameter("keep"); if(keep!=null&&keep.equals("on")){ System.out.println("Keep"+keep); //保存用户名 Cookiecookie=newCookie("usn",usn); cookie.setPath("/"); cookie.setMaxAge(24*60*60); response.addCookie(cookie); //保存密码 cookie=newCookie("pwd",pwd); cookie.setPath("/"); cookie.setMaxAge(24*60*60); response.addCookie(cookie); }微博热议投票系统Vote:功能描述:此模块是含有娱乐性质,后台管理中首先发送微博热议内容选项,然后用户可以根据自身喜好不同来对其相应投票,然后查看投票结果,用漂亮的彩色柱形图显示。功能实现:Servlet(VoteServlet.java)获取到用户喜好的投票内容,然后首先通过biz(VoteBizImpl.java)层调用dao(VoteDaoImpl.java)层来实现修改数据库相应自动的投票数量,然后通过应Jfreechart技术来实 现页面效果很漂亮的彩色柱形图,来显示到页面中。找回密码RetrievePassword:功能描述:如果用户忘记自己密码,跳到密码找回页RetrievePassword.jsp,用户输入用户名,和其他信息,核对信息正确无误后,系统会自动把该用户密码发送到该用户注册邮箱内。功能实现:首先跳转到RetrievePassword.jsp密码找回页面中,Servlet首先判断此用户输入的验证信息是否正确,如果正确无误,则用javaMail功能来实现把该用户密码发送到该用户注册邮箱内。部分代码如下:Stringmail=request.getParameter("mail").trim(); Stringresult=uques+urequest; Usersus=newUsers(); us=useBiz.SelectByMail(uname,result); if(us!=null){ Emailemail=newSimpleEmail(); email.setCharset("gbk"); email.setHostName(""); //如果是163邮箱为例,则为指的是发送方属性 //发送方邮箱地址发送方邮箱密码 email.setAuthentication("12345@","12345"); try{ //这里设置发送方邮箱地址,与上边setAuthentication设 置相同 email.setFrom("12345@"); //邮件接收方地址 email.addTo(mail); email.setSubject("微博系统找回密码"); //设置发送邮件的内容 email.setMsg("您的密码是:"+us.getUpwd()+",下次不要忘记啊!"); //发送邮件 email.send(); response.getWriter().printf("<script>alert('密码已经发送到您的邮内!');location.href='findpassword.jsp'</script>"); }catch(EmailExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); response.getWriter().printf("<script>alert('密码发送错误!');location.href='login.jsp'</script>"); } }else{ response.getWriter().printf("<script>alert('用户名或回答的问题有误!');location.href='login.jsp'</script>"); }验证码功能VerificationCode:功能描述:用户在登陆过程中,需要输入验证码,验证码可以动态改变,用户输入正确的验证码后方可登陆微博主页。功能实现:两种方法,一是通过javascript页面脚本语言实现,二是通过Servlet动态随机生成数来显示到页面验证码内。3.2.2微博系统后台功能设计后台管理不是针对发送微博的前台用户,而是针对后台管理员管理而设定的。因此它可以管理前台的信息内容。(1)后台登陆图3-10后台登陆界图3-11后台首页功能描述:后台的登陆有别于前台,首先是分权限管理的,首先分两个 权限管理,一是管理员,就是能看到全部功能;二是普通后台用户,权限:前台用户管理、微博管理、好友关注度比较、微博热议内容、收藏管理。功能实现:首先不同权限的用户登录后现在的后台内容是不同的,首先后台登录管理涉及到的后台用户注册管理,后台用户注册要选择不同的角色来进行注册,区分管理员还是普通后台用户,通过数据库对不同用户的角色权限的定义,以创建权限 表来区分,登陆时后Servlet(BaskstageLoginServlet.java)通过biz(BaskstageBizImpl.java)调用dao(BaskstageDaoImpl.java)层判断其角色权限,从而显示相应不同的管理信息页面。(2)前台用户管理图3-12前台用户列表功能描述:在显示前台用户管理页面中FrontUsersManager.jsp中,罗列分页显示前台所以用户信息,从而可以对其做修改,删除,模糊查找操作。功能实现:Servlet(FrontUsersManagerServlet.java)通过biz(FrontUsersManagertBizImpl.java)层调用dao(FrontUsersManagerDaoImpl.java)层来分页搜索显示前台用户信息。(3)后台用户管理图3-13后台用户列表图3-14添加后台用户图3-15权限列表图3-16添加权限功能描述:首先此功能是后台管理员角色操作,BackstageUsersManager.jsp在此页面中,罗列分页显示后台所有用户信息,管理员可以针对其修改操作,修改,删除,模糊查找功能Servlet(BackstageUsersManagerServlet.java)通过biz(BackstageUsersManagertBizImpl.java)层调dao(BackstageUsersManagerDaoImpl.java)层来显示。后台注册:BackstageRegistration:功能描述:此功能是管理员角色操作。针对后台登陆功能,在后台用户注册时要区别前台用户,重要多的内容是选择用户角色以区分不同的权限。功能实现:首先在BackstageRegistration.jsp页面中实现后台用户注册,servlet层通过biz层调用dao(BackstageRegistrationDaoImpl.java)层提交数据库。(4)评论管理图3-17评论列表功能描述:show_comment.jsp页面中显示前台所有用户评论信息,可以对此进行删除。功能实现:Servlet(MicroblogCommentServlet.java)通过 biz(MicroblogCommentBizImpl.java)层调用dao(MicroblogCommentDaoImpl.java)层来显示到show_comment.jsp页面(5)微博管理图3-18博文列表功能描述:MicroblogManager.jsp页面中显示前台所有用户发送的微博信息,并显示该信息发送的用户,可以对此进行删除,修改,模糊查找功能。功能实现:Servlet(MicroblogManagerServlet.java)通过 biz(MicroblogManagerBizImpl.java)层调用dao(MicroblogManagerDaoImpl.java)层来显示到MicroblogManager.jsp页面(6)好友关注度比较管理图3-19好友关注度列表功能描述:首先在ComparisonAttention.jsp页面中排序显示好友关注度比较息,最前面的显示的是关注度最高的人。可以导出excel表格。可以模糊查找某个人的关注人数。功能实现:首先sql语句排序搜寻出关注人数最多的前台用户信息,并且分页显示。Servlet(ComparisonAttentionServlet.java)通过 biz(ComparisonAttentionBizImpl.java)层调用dao(ComparisonAttentionDaoImpl.java)层来显示到ComparisonAttention.jsp页面中。(7)微博热议内容管理图3-20热议话题列表图3-21添加热议话题功能描述:前台显示的娱乐性质的微博热议内容,是需要后台所提供的,此微博热议内容不是一沉不变的,需要后台根据业务情况来更新操作。功能实现:在后台的BlogHot.jsp页面中,后台用户要输入热议的标题,内容,以及选项然后保存到数据库,以便于前台页面更新显示Servlet(BlogHotServlet.java)通过Biz(BlogHotBizImpl.java)层调dao(BlogHotDaoImpl.java)层实现添加微博热议内容。(8)收藏管理图3-22博文收藏列表功能描述:CollectionManager.jsp此后台页面中,显示前台用户收藏的自己喜欢的微博信息,后台用户可以进行删除,修改,模糊查找操作。功能实现:首先在后台系统中点击收藏管理,分页查找用户全部收藏微博信息, 并且对应用户姓名,删除,修改,模糊查找在后台Servlet(CollectionManagerServlet.java)中获取相应删除和修改ID信息,或者模糊查找条件,通过biz(CollectionManagerBizImpl.java)层调用dao(CollectionManagerDaoImpl.java)层来时间对数据库的相应操作。各个界面都会涉及到数据的分页显示,下面是微博信息分页显示的实现: publicPageBeanFindByPage(StringstrSQL,intcurrentPage,intpageSize){ PageBeanpb=newPageBean(); StringstrSQL1=strSQL; strSQL1=strSQL1.substring(strSQL1.toLowerCase().indexOf("from")); strSQL1="selectcount(*)"+strSQL1; ResultSetrs=db.execQuery(strSQL1,newObject[]{}); try{ rs.next(); pb.setTotalRows(rs.getInt(1)); }catch(SQLExceptione){ e.printStackTrace(); } intstart=(current1)*pageSize; strSQL=strSQL+"limit?,?"; rs=db.execQuery(strSQL,newObject[]{start,pageSize}); List<Weibo>lstWeibo=newArrayList<Weibo>(); Weiboweibo=null; try{ while(rs.next()){ weibo=newWeibo(); weibo.setWid(rs.getInt("wid")); weibo.setWcontent(rs.getString("wcontent")); weibo.setWdate(rs.getString("wdate")); Strings=""; if(rs.getString("wimage")!=null){ s=rs.getString("wimage").replaceAll("/Microblog/",""); weibo.setWimage(s); }else{ weibo.setWimage(rs.getString("wimage")); } weibo.setWtimes(rs.getInt("wtimes")); weibo.setWremarks(rs.getString("wremarks")); weibo.setWcountcomment(rs.getInt("wcountcomment")); weibo.setW_uid(rs.getInt("w_uid")); ResultSetre=db.execQuery("SELECT*FROMuserswhereuid=?",newObject[]{rs.getInt("w_uid")}); if(re.next()){ Usersuse=newUsers(); use.setUid(re.getInt("uid")); } lstWeibo.add(weibo); } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ db.closeConn(); } pb.setData(lstWeibo); pb.setCurrentPage(currentPage); pb.setPageSize(pageSize); returnpb;}3.3数据库系统详细设计3.3.1数据库模型在数据库信息特点的基础上可以得到数据库模型图,以便于编码实现:图4-6数据库模型图由于博客系统中对博客内容的写入、修改和更新工作比较复杂,所以它的主要任务是进行大量的数据库操作,这就必然要存储和利用大量的、各种类型的数据。数据库设计兼顾前台后台相互关联调用,设计的表明晰如表1:表1系统表序号逻辑数据库表名物理表名(英文表名)说明1前台用户信息表users管理前台用户基本信息2前台用户关系表Relations管理前台用户之间关系基本信息,例如关注好友3微博信息表Weibo管理前台用户所发送的微博信息4评论表Comments针对微博信息所发送的评论信息管理5收藏表Collections管理用户对自己喜欢的微博信息进行收藏管理6后台用户表Admins管理后台用户基本信息表7后台权限关系表permissions记录对应后台用户所拥有的权限关系表8后台权限内容表percontent记录后台权限所对应内容基本信息表9微博热议表bloghot管理微博前台热议内容基本信息表3.3.2各表详细说明:前台用户信息表(users)表2users用户表序号逻辑字段物理字段类型及长度规则字段说明1用户iduidInteger主键唯一性自动增长2用户名unameVarchar(20)非空用户姓名3用户密码upwdVarchar(40)非空用户密码4用户昵称unicknameVarchar(20)非空用户昵称5用户性别usexVarchar(10)非空用户性别6用户地址uaddressVarchar(100)可空用户地址7用户生日udatedatetime可空用户生日8用户qquqqVarchar(40)可空用户qq号9用户教育信息ueduVarchar(100)可空用户教育信息10用户头像upicVarchar(50)可空用户头像上传地址路径11密码保护问题uquesVarchar(100)可空用户找回密码提供保护问题信息12用户真实姓名urealnameVarchar(100)可空用户真实姓名 前台用户关系表(relations)表3relations关系表 序号逻辑字段物理字段类型及长度规则字段说明1关系idridinteger主键唯一性,自增长,关系id号2关系前者(加关注的好友)r_idinteger外键对应users表uid对应usersuid,r_id加g_id好友3被加关注人g_idinteger外键4关系状态stateInteger非空0单向关注,1为双向关注(3)微博信息表(weibo)表4weibo微博信息表序号逻辑字段物理字段类型及长度规则字段说明1微博idwidinteger主键唯一性,自增长2微博信息idw_idinteger外键对应usersuid表示发送者信息3微博内容wcontentVarchar(100)非空发送微博内容4发送时间wdatedatetime非空发送微博时间5微博图片wimageVarchar(50)可空发送微博附加图片上传路径地址6转发次数wtimesinteger非空默认为0,记录此微博信息转发次数微博评论表(comment)表5comment评论表序号逻辑字段物理字段类型及长度规则字段说明1评论idcidinteger主键唯一性,自增长2评论信息idc_widinteger外键对应weibowid表示此微博所发的评论3评论内容ccontentVarchar(100)非空发送评论内容4评论时间cdatedatetime非空发送评论时间5评论用户c_uidinteger外键对应usersuid表示此评论对应发送者的信息收藏表(collection)表6collection收藏表序号逻辑字段物理字段类型及长度规则字段说明1收藏idlidinteger主键唯一性,自增长2用户idl_uidinteger外键对应usersuid表示收藏此信息的用户3收藏内容lcontentVarchar(100)非空收藏信息内容4收藏时间ldatedatetime非空收藏信息时间5收藏图片limagesVarchar(50)可空收藏微博图片地址 后台用户表(admins)表7admins后台用户表序号逻辑字段物理字段类型及长度规则字段说明1用户idaidinteger主键唯一性,自增长2权限ida_pidinteger外键对应permissionspid3用户名anameVarchar(50)非空后台用户名4密码apwdVarchar(50)非空后台用户名密码5注册时间adatedatetime非空收藏微博图片地址6真实姓名arealnameVarchar(50)可空后台用户真实姓名7用户性别asexVarchar(10)非空后台用户性别8备注aremarksText可空备注 权限表(permissions)表8permissions权限表序号逻辑字段物理字段类型及长度规则字段说明1权限IDpidinteger主键唯一性,自增长,权限ID号2权限姓名pnameVarchar(50)非空权限姓名3权限内容pcontentVarchar(100)非空权限内容说明4权限备注premarksText可空备注 权限内容表(percontent)表9percontent权限内容表序号逻辑字段物理字段类型及长度规则字段说明1权限内容IDpcidinteger主键唯一性,自增长,权限ID号2权限idpc_pidinteger外键对应权限表pid,指一个权限内容针对的权限范围3权限itemspcitemsVarchar(50)非空权限具体内容细节4权限urlpcurlVarchar(50)可空针对权限所以涉及的路径根节点5备注pcremarksText可空权限内容备注微博热议内容表(bloghot)表10bloghot热议表序号逻辑字段物理字段类型及长度规则字段说明1热议IDbidinteger主键唯一性,自增长,权限ID号2热议状态bstateinteger非空热议状态默认0,如果是当前选择内容,则为13热议标题btitleVarchar(50)非空热议标题4热议itemsbitemsVarchar(50)非空热议具体节点内容5热议投票bvoteInteger(50)非空对热议内容投票数量,默认为06热议备注premarksText可空热议备注
数据库设计是本系统设计的重中之重,如何确立逻辑和物理关系,是数据库设计的关键,数据库设计就像在建设高楼大厦的根基一样,如果在设计时不够注意,将在开放过程中引起很大的问题。第4章系统测试4.1测试的意义和目的在完成了整个系统的完整编码和数据库设计以后,我们还要对系统进行测试,测试是非常重要的一个步骤,不可以随便应付。系统测试的对象不仅仅包括需要测试的软件,还要包括计算机本身,和支持软件的其他软件。1、,确保系统测试的活动是按照原先的需求分析进行的设计;发现程序中的错误而执行程序的过程,看系统的功能是否齐全原先的设定目标是否达到,建立完善的系统测试缺陷记录跟踪库。2、如果未经测试软件或系统即投入市场,不仅客户不会满意,如果在以后的运行过程中出现问题暴露出来,那么将付出比测试更大的代价。3、确保软件系统测试活动及其结果及时发现,测试的目的是发现错误,完善系统功能。4.2测试过程4.2.1测试方案现在主流的测试方案是白盒测试和黑盒测试,这里具体模块测试采用黑盒测试。在根据需求分析中的测试要求,在概要设计中为每个模块指定了详细的测试计划,根据此测试计划,进行测试,并对对照测试结果和预期结果是否一致。4.2.2测试环境表4-1测试环境产品名称微博系统测试环境数据库服务器:Mysql5.1编程语言:HTMLJavascriptJavaSql语句JSP/Servlet发布服务器ApacheTomcat7.0浏览器IE8/google4.2.3测试方法本系统采用如下方法进行测试:(1)单元测试:由于本系统采用JAVA面向对象分层开发的思想进行编写,系统由许多不同功能的类组成,为了确保每一个类都有效,再每个类编写完成后,都会编写一个main方法作为入口测试该类是否有效。(2)输入代表测试用例:当每一个功能完成后,编写几个具有代表性的测试用例,从前台开始输入,完成后查看数据库内数据是否正确。保证功能的正确性。(4)借助编译工具的辅助功能:可以在测试中使用MyEclipse的DeBug功能设置程序断点,跟踪程序找出错误所在,这样测试的好处是可以准确的跟踪程序走向,从整个程序运行的流程上一步一步找出问题所在。测试工具:MyEclipse,通过编译工具MyEclipse的debug功能有效的跟踪代码,找出出错原因。4.2.4测试内容与用例1.系统的正常运行,打开,关闭,各个按钮的功能。2.测试界面,看功能是否对应,安全性和可操作性,以保证数据库的安全。3.数据的输出和输入是否能够顺利完成,并能实现动态更新,现实用户操作失误所造成的影响。4.数据库错误,是否会导致越界和溢出等操作提示错误信息。测试用例:测试步骤一:主页登陆时用错误或者未经注册的账号进行登录,或者输入错误密码,直接敲入地址非法访问一些需登陆才能访问的页面。第1组:用户名:jerry密码:12345预期结果:成功登陆测试结果:进入用户界面第2组:用户名:密码:123456预期结果:提示输出用户名测试结果:提示请输入用户名!第3组:用户名:sss密码:12345预期结果:无法登陆测试结果:用户名或密码错误!测试步骤二: 用户发表博文,包含文字以及图片。第1组:用户输入一段纯文字微博,点击发表。预期结果:成功发表该微博,并在首页显示。测试结果:刷新后首页显示该微博第2组:用户选择一张图片发布图片微博。预期结果:成功发表该微博,并在首页显示图片。测试结果:刷新后首页显示图片第3组:用户选择一张图片赋予文字说明,发布图片微博。预期结果:成功发表该微博,并在首页显示图片与文字。测试结果:刷新后首页显示图文测试步骤三:登录微博管理系统,对整个系统进行操作。第1组:用汉字进行注册,不填完整信息进行注册。预期结果:必填信息为填写无法完成注册。测试结果:用户名只能包含字母数字!用户名最少三个字符!第2组:修改人人头像。预期结果:修改成功。测试结果:修改成功,图像避免过大。第3组:关注好友预期结果:成功关注。测试结果:成功关注。测试步骤四;登陆微博后台系统,对管理员的操作功能做测试。第1组:禁用前台用户。预期结果:成功禁用。测试结果:被禁用用户无法登陆第2组:Excel批量添加后台用户。预期结果:添加成功。测试结果:添加失败,Excel中的数据要严格对应。第3组:添加微博热议话题预期结果:成功添加。测试结果:成功添加。第4组:为后台用户添加权限预期结果:成功添加。测试结果:成功添加。4.2.5测试结果分析上面四个测试步骤的13组测试,除了在用Excel批量导入数据的时候产生了bug,其他功能均测试成功。该系统是面向外个人的微博交流平台,其中的模块基本可以满足信息交流的基本要求,尽可能的实现了操作简单,界面清晰一目了然。其中主要涉及到管理员管理信息和注册用户管理。本系统使用身份验证机制,能更好的保护页面被非法的访问。当用户登录时,用户必须要有有效的身份。根据用户的类型不同其访问权限也有所不同,按权限可分为:管理员、用户。通过用户名和密码的匹配,可正确登录页面,进行各项操作。主要遇到的问题是对数据格式的限制,数据校验做的不好,搜索功能和好友添加功能有很大缺陷。第5章总结与展望5.1设计总结本系统采用JSP技术实现JAVAWEB的简单微博管理系统,既可以实现用户在社交网络上的信息交流,也不需要受软件或客户端的制约,简单易懂简洁明了。如今我们正快步迈向信息化社会,人们在社交网络上将越来越活跃而代替真正的社交活动,而网络的最主要的功能即是信息的传递与获取,本系统虽然还处于非常简易的状态,但我相信未来的大趋势应该是是界面清晰,注重用户体验,每个人在网络上都将发出自己的声音。5.2课题展望之前交通、工业的发展,拓展了人类肌肉的能力;通讯、互联网的发展,将提升人类大脑的能力。目前人类还处于把互联网当一个工具使用的阶段,终局的阶段是人类的意识与某种网络也可能是互联网的“有机”整合。信息网络
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 居家养老食堂合同(2篇)
- 2025年度O2O电商代运营团队培训与支持合同3篇
- 二零二五年度酒吧服务员全职雇佣合同规范文本3篇
- 二零二五年度生物科技园开发与管理承包合同2篇
- 二零二五版绿色环保办公楼房地产买卖代理合同3篇
- 基于二零二五年度的采购合同2篇
- 二零二五年摄影摄像与后期制作合同2篇
- 二零二五版板材模板设计与制造技术服务合同3篇
- 二零二五年度电力系统用变压器安装及节能降耗合同3篇
- 二零二五版土地购置与绿色生态农业合作合同3篇
- 银行会计主管年度工作总结2024(30篇)
- 教师招聘(教育理论基础)考试题库(含答案)
- 2024年秋季学期学校办公室工作总结
- 上海市12校2025届高三第一次模拟考试英语试卷含解析
- 三年级数学(上)计算题专项练习附答案集锦
- 长亭送别完整版本
- 《铁路轨道维护》课件-更换道岔尖轨作业
- 股份代持协议书简版wps
- 职业学校视频监控存储系统解决方案
- 《销售心理学培训》课件
- 2024年安徽省公务员录用考试《行测》真题及解析
评论
0/150
提交评论