资源描述
XX信息技术职业学院毕业设计论文设计论文题目:基于J2EE的在线博客选题性质:设计口论文基于J2EE的在线博客荀建昌XX信息技术职业学院软件学院一系XX万州404000摘要:本文对我的毕业设计作品重信博客在线(CqeecBlogOnline),进展了全面的阐述和分析。其中涉及到我对博客,这个互联网新兴概念的认识,以及对BSP的功能分析。然后文中详细阐述了需求分析阶段的各方面内容,罗列了架构设计方面的各种材料和成果,最后对我的毕业设计做了一个全面的总结。特别的,文中对整个系统的工作流程做了详细分析和说明,对MVC的理解及阐述贯穿本文始末。另一方面,在本次毕业设计的过程中,我担任了小组组长的工作,在本文中又特地阐述了我工作上的一些细节。关键字:博客互联网MVC需求分析架构设计目录1 绪论32 系统开发知识储藏42.1 相关开发技术和模式介绍42.1.1 Servlet42.1.2 JSP42.1.3 Ajax42.1.4 XML52.1.5 DOM52.1.6 MVC52.2 开发技术和本系统53 需求分析53.1 功能概述53.2 用例分析63.2.1 系统用例概述63.2.2 参与者65系统运作机制简析75.1 系统运作机制简述75.2 博客注册模块分析85.2.1 模块功能概述85.2.2 模块构造85.2.3 模块运作图解95.2.4 模块运作详解9完毕语12致谢12附件121绪论博客(Blog)是互联网技术日益成熟,逐日走进千家万户后的产物。它不仅代表了个人信息发布平台,更展现了一种全新的生活方式,同时一种新的传媒形式也因此逐渐浮现出来。这种传媒形式的特点是,普罗群众已经不再只是信息的消费者;只要你有一台电脑,一个MODEM,轻轻敲击键盘,点击鼠标,你就有可能是信息的制造者和传播者。信息的自由传播,使网民趋之假设鹜,因此各大BSP纷纷涌现,开博客写博客成为当今互联网的一大热潮。同博客息息相关的另一个新的概念是,Web2.0。Web2.0并不是互联网世界的新产品,它只不过是对一种日渐成型的Web设计思想的总结。Web2.0强调用户参与和用户体验。博客无处不在表达着Web2.0的核心思想,但它却早在Web2.0的概念提出前就已经存在,它对于酝酿Web2.0功不可没。与此同时,Web2.0的开展,在技术和设计思想上又进一步影响了当今博客开展的趋势。综上所述,我这次选择的毕业论文题目博客网,有着非凡的意义以及实际应用价值。它既考验了我对传统Web的认识,又考察了自己对新技术的敏锐度。作为本次毕业设计小组的组长,自己担任了很多方面的工作,从需求分析,架构设计,代码编写,以及辅助小组成员完成诸如数据库设计等工作,都要亲身参与。在需求分析阶段,我先是浏览各大BSP,试用它们所提供的效劳,逐渐总结出一个在线博客主要的用例。然后我又进一步分析用例,画出系统总的用例图,之后再根据用例图总结出系统所需的主要功能,为下一步的架构设计打下根底。对于架构设计,考虑到毕业作品的特点和这三年来我所学到的知识,我决定小组使用Servlet+JSP+MSSQLServer2000+Ajax+Tomcat来开发整个博客网系统。Servelt+JSP应用于Web开发,有着很强的优势;而MSSQL对于中小型的系统来说,是个很好的选择;Ajax是当今比拟热门的技术,也是Web2.0时代极具代表性的技术,它对于改善用户体验减轻效劳器端的负担有着很大的作用。同时我结合MVC和本系统的具体特点,把系统分为三个层次:表述曾,逻辑层和数据层。在代码编写阶段,由于本小组只有两个人一台电脑,所以每个人的工作量都比拟大,而且开发时间很紧X。因此,我尽量使用Java中的接口做到分工明确。但实在是由于人员和时间有限,对于需求分析阶段的某些功能,至今还未能完全实现。但我相信,毕业设计的目的并不仅仅只关注实现了什么功能,它只是通过此种形式来检验我们的学习态度和知识储藏情况。此论文旨在阐述我对我们的毕业设计作品重信博客在线(CqeecBlogOnline)的认识以及详细介绍自己工作中的细节。2系统开发知识储藏2.1相关开发技术和模式介绍2.1.1ServletServlet是运行在Web效劳器或应用效劳器上的Java程序,它是一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP效劳器上的应用程序或数据库。2.1.2JSPJSP(JavaServerPageS!)由Sun公司倡导、许多别的公司参与一起建立的一种新动态网页技术标准,类似其他技术标准,如ASP、PHP或是ColdFusion,等等。在传统白网页HTML文件(*.htm,*.html)中参加Java程序片段(Scriptlet)和JSP标签,构成了JSP网页(*.jsp)。Servlet/JSPContainer收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。其中程序片段可以是:操作数据库、重新定向网页以及发送等等,这些都是建立动态所需要的功能。所有程序操作都在效劳器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关。2.1.3AjaxAJAX是AsynchronousJavaScriptandXML的缩写。它并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括:使用XHTML和CSS标准化呈现;使用DOM实现动态显示和交互;使用XML和XSLT进展数据交换与处理;使用XMLHttpRequest进展异步数据读取;最后用JavaScript定和处理所有数据。Ajax的工作原理相当于在用户和效劳器之间加了个中间层,使用户操作与效劳器应异步化。这样把以前的一些效劳器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻效劳器和带宽的负担,从而到达节约ISP 的空间及带宽租用本钱的目的。2.1.4XMLXML代表了由全球信息网协会WorldWideWebConsortium;W3C的XML工作小组所定义的可延伸标记语言。虽然超文字标记语言HTML是目前建立网页最常使用的程序语言,然而在储存信息的能力上有其限制。相较之下,XML具有较大的弹性,允许你使用任何虚拟型态的信息,从简单的单笔数据到复杂的数据库因此称为可延伸标记语言。一个XML文件通常与样式表或传统的HTML网页连结在一起,因此XML文件可以轻易地在网页浏览器中显示出来。XML文件以有效率的构造和卷标来储存其所包含的信息,因此浏览器可以使用较弹性的方式来寻找、撷取、排序、筛选、排列和处理信息。XML提供了一个理想的解决方法来处理快速增加的数据量和信息复杂度的问题。2.1.5 DOMDOM即DocumentObjectModel的缩写,是表示文档和,操作构成文档的各种元素的应用程序接口。W3C的DOM标准,提供了大量的API,让你可以对各种节点,执行各种各样的操作。实现了DOM标准的浏览器,通过对外提供HTMLDOM的内存对象树,以及丰富的DOMAPI,使得基于DOM的Web编程,能够有效的操作所有的页面元素,实现丰富的动态交互效果。2.1.6 MVCMVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或E来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。2.2开发技术和本系统重信博客在线是一个中小型的多人在线博客,系统规模虽不复杂,但也并不简单,因此使用J2EE技术开发此系统是一个较好的选择。同时,本系统是一个面向广阔互联网用户的,前台必须简单明了,用户操作须使用顺畅,使用Ajax技术能很好的到达此要求。3需求分析3.1 功能概述重信博客在线是一个多人在线博客,它需要实现当前各大BSP(BlogServiceProvider)所提供的主要功能。目前国内各大BSP所提供的主要功能有,博客注册,发表文章,编辑文章,删除文章,添加文章分类,删除文章分类,添加友情,删除友情,文章留言,自定义模板,RSS订阅,Trackback,统计。但考虑到开发时间和人力资源的具体情况,重信博客在线只初步实现其中的核心功能,去除了编辑文章,自定义模板,RSS订阅,Trackback等功能。3.2 用例分析3.2.1 系统用例概述重新博客在线是一个中小型的在线博客,它向所有的互联网用户开放。普通的者作为游客,可以登陆本,搜索博客,浏览博客,浏览他人博客中的文章,友情,文章评论,同时也能对相应的文章进展留言。普通的游客,可以通过注册,成为本的注册用户。注册用户,本除具有普通游客所有的权限外,还能通过登录后,管理自己的博客。注册用户可以发表文章,删除文章,添加文章分类,删除文章分类,增删友情等。另外普通游客可以通过RSS订阅本的的最新博客内容,或通过RSS订阅具体博客的最新文章。3.2.2 参与者访客:浏览本的普通访客,只具备浏览文章,搜索博客的权限注册用户:本的注册用户,除具备普通访客的所有权限外,还能后发表文章,管理自己的博客等管理员:本的管理者,具备访客和注册用户的所有权限,并具有增删改博客,用户,编辑页面等权限(注:本系统暂未实现管理的功能)3.2.3 用例备注由于开发时间,人力资源等问题,本小组暂为对用例分析中的某些用例在功能上进展实现。系统只解决了一些主要的用例。3.3 用户分析重信博客在线主要是面向熟悉互联网的网民,他们具有一定的网页浏览经历,熟悉普通注册,登陆,浏览的相关流程3.4 限制与约束本毕业设计小组,组员总共有两人,而总共只有一台电脑,开发时间有限,因此只实现了用例分析中的局部功能。3.5 功能需求3.5.1 功能需求表表3-101博客注册Register高注册博客02及表文早PostArticle高发表新文章03删除文章DelArticle高删除指定的文章05添加文章分类AddSort高添加文章分类06删除文章分类DelSort高删除文章分类07添加友情AddLinks高添加友情连接08删除友情DelLinks高删除友情09文章留言AddFeedback高添加文章留言10统计VisitCount中博客量统计11修改博客信息ModifyBlog中修改博客的注册信息12博客搜索Search高用指定关键词搜索博客13博客Logo管理ModifyLogo低博客的10go管理14最新文章推荐NewArticles中在主页推荐最新文章15热点博客排行HotArticles中在主页推荐量较高的博客5系统运作机制简析5.1 系统运作机制简述系统由JSP+Ajax+Servlet+MSSQLServer2000协同完成工作。系统可分为三个层次:表示层,逻辑层,数据层。表示层:由WebRoot目录下的所有JSP文件和WebRoot/images目录下的所有Javascript文件负责。JSP文件输出到客户端浏览器,客户端通过表单或URL调用逻辑层中的Servlet,或通过XMLHttpRequest对象调用逻辑层中的Servlet.逻辑层:由WEB-INF/classes/cqeecBlog/action目录下白所有Servlet负责。逻辑层接收客户端请求,提取参数,然后调用数据层中的相应方法读写数据库。如需响应客户端请求,那么:把响应数据保存在Seesion对象中,通过sendRedirect(近法转发至U相应的JSP文件,JSP文件再从Session中提取数据,格式化输出.把响应数据组合成XML文档,通过PrintWriter对象输出到客户端,客户端的XMLHttpRequest对象接收XML文档,然后调用相应的处理函数输出响应数据.数据层:由WEB-INF/classes/cqeecBlog/toolkit目录下的DbOperateSpec负责。DbOperateSpec接口定义了相应的读写数据库的抽象方法。5.2 博客注册模块分析5.2.1 模块功能概述本模块主要完成博客信息注册的功能。在注册过程中,该模块会检测注册用户名是否已经存在,注册信息是否符合要求。5.2.2 模块构造此模块须数个组件协同完成,包括:?WebRoot/regist.jsp?WebRoot/images/regist.js?WEB-INF/classes/cqeecBlog/action/CheckUnameAction.class?WEB-INF/classes/cqeecBlog/action/RegistAction.class?WEB-INF/classes/cqeecBlog/action/OpenBlogAction.class?WEB-INF/classes/cqeecBlog/toolkit/DbOperateSpec.class?WEB-INF/classes/cqeecBlog/toolkit/DbOperate.classDtiOperateSpecgetBlogfStringuname)/savt(Objectobj)getBlog(StringunameRegistActioniCheckJnameAdionregist.js_checkUaer()formregist.jsp图5-1各模块运作图解5.2.4模块运作详解翻开主页,在右方的用户登录附近点击新用户注册进入博客注册页面,页面截图如下:请填写您的个人信息I您的用户名j 您的密码I 重复植入密I码 1懈斯空地惮骂信息也行设置好的博客标题1-电子邮件尼(址1法塘用户名不旎为空成为孕母,数字.下划线密码应为5字母,熟字.特殊字符给您的博客起个好听的名字请按照电干邮件地址的格式埴号CeecBlofOnhn顺权所图5-2重信博客登陆页面此页面由regist.jsp文件负责生成,其中的表单元素的HTML代码如下:表5-1表单元素的HTML代码=unamename=unamename=pswmsg=密name=psw2msg=name=emailmsg=需inputclass=button-submittype=submitvalue=注册当用户在文本框输入用户名,并准备进展下一项输入时,当前文档调用regist.j蚊件中的regist.jspcheckUser()函数。checkUser()数负责向效劳器端发出请求,检查此用户名是否已经被注册。如果用户名已经被注册,那么使用Window.alert()提示错误信息,并把用户名文本框设为当前焦点。局部代码如下表5-2regist.js因部代码functioncheckUser()varuname=document.regForm.uname.value;if(uname=)window.alert(document.regForm.uname.msg);document.regForm.uname.focus();returnfalse;elsesendRequest(checkUname?uname=+uname);/发送请求函数functionsendRequest(url)/局部代码略.XMLHttpReq.onreadystatechange=processResponse;/指定响应函数XMLHttpReq.send(null);/发送请求/处理返回信息函数functionprocessResponse()if(XMLHttpReq.readyState=4)/判断对象状态if(XMLHttpReq.status=200)/信息已经成功返回,开场处理信息varres=XMLHttpReq.responseText;if(res=1)window.alert(用户名已经被占用,请更换!);document.regForm.uname.focus();userAviable=false;elseuserAviable=true;/局部代码略.checkUser()函数会调用sendRequest()l数向效劳器端的Servle发送t#求.负责处理此请求的是CheckUnameAction,它首先接收客户端请求参数,然后调用DbOperateSpec中的getBlog(Stringuname)方法获取指定的博客,假设该方法返回null值,那么代表该用户名未被注册。当用户完成所有的输入后,点击注册按钮,当前HTML文档会首先调用regist.js中的regist()函数检查注册信息是否未空,假设不为空那么返回true,浏览器向效劳器端的发送注册请求.负责处理此请求的是RegistAction.它首先接收客户端请求参数,然后把这注册信息封装到一个实体Bean.cqeecBlog.entities.Blog中,然后调用DbOperateSpec中的save(Objectobj)方法,保存用户注册信息。?假设save(Objectobj)方法调用正常,那么调用DbOperateSpec中的getBlog(Stringuname由法获得刚刚注册的博客信息,然后从当前博客信息中提取博客id,存放到当前Session对象中,最后将响应转发到OpenBlogAction,向客户端输出当前注册博客的博客主页面。完毕语我这次选择的毕业论文题目博客网,有着非凡的意义以及实际应用价值。它既考验了我对传统Web的认识,又考察了自己对新技术的敏锐度。作为本次毕业设计小组的组长,自己担任了很多方面的工作,从需求分析,架构设计,代码编写,以及辅助小组成员完成诸如数据库设计等工作,都要亲身参与。工作虽然多,但对自己也是一次很好的锻炼。在开发本系统的过程中,遇到了许多技术性问题,但经过反复的查询,查阅相关资料,调试,最终都圆满解决,使得自己的专业水平又更上一个台阶。总之,这次的毕业设计,无论是对自己的学业,还是对自己今后的从业都有很大的帮助。参考文献1吴其庆著.?JS网态设at教程?冶金工业.2005.7.125-127页;2邵丽萍邵光亚X后扬著.?JAVA语言程序设计?清华大学.2004.8.78-79页;3虞益诚著.?SQL2000数据库应用教程?中国铁道.2004.11;4陈刚.?Eclipse从入门到精通?.XX大学学报自然科学版第265期.65-72页;致谢首先要感谢的是我的指导教师,邓永生教师。他技术精湛,诲人不倦,曾屡次指导我们小组的毕业设计工作。可以说,没有他我们的毕业设计就不可能顺利完成。另外,还要感谢和我一起开发本系统的小组成员,我们协同工作,完成此系统,他对我的帮助很大。附件源代码及相关详细文档见光盘。
展开阅读全文