毕业论文:学生个人博客.doc

上传人:文****钱 文档编号:40606 上传时间:2018-05-07 格式:DOC 页数:44 大小:1.79MB
下载 相关 举报
毕业论文:学生个人博客.doc_第1页
第1页 / 共44页
毕业论文:学生个人博客.doc_第2页
第2页 / 共44页
毕业论文:学生个人博客.doc_第3页
第3页 / 共44页
毕业论文:学生个人博客.doc_第4页
第4页 / 共44页
毕业论文:学生个人博客.doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、1学生个人博客摘要随着科学的发展,技术的进步,计算机在人们生活学习中扮演着越来越重要的角色。人们开始利用计算机交流沟通也变得越来越频繁,而博客作为交流的工具,已经成为了人们深度交流沟通的网络新方式。学生个人博客主要是为了方便学生在线交流,沟通,可以交流学习心得,展示个人才能,聊天交友,还可以作为网络个人日记,发表自己的心情。本博客主要由三个功能模块组成注册登录,发表文章照片,评论及浏览组成。采用JAVAEE三大核心框架(STRUTS2,HIBERNATE,SPRING)的设计模式,利用HIBERNATE与MYSQL数据库无缝对接,后台数据库是MYSQL55,该数据库具有是开源的数据库系统,该数

2、据库具有较高的完整性,一致性,安全性,博客网站本身运行在TOMCAT60服务器上。关键词博客,核心框架,学子博客,MYSQL数据库2目录摘要1ABSTRACT错误未定义书签。第一章绪论411选题背景412课题研究意义413论文的组织结构和具体安排4第二章个人博客需求分析521可行性分析5211技术可行性5212经济可行性522个人博客需求概述5221网站目标523个人博客网站需求模型5231功能描述5232详细功能描述6233主要功能模块处理流程的描述6第三章整体设计1031数据库设计10311数据库设计概述10312用户信息表结构设计11313个性化设置表表结构设计11314文章列表表结构设

3、计11315评论列表表结构设计12316点击量列表表结构设计12317留言板列表表结构设计12第四章程序设计与编码1341开发平台与工具13411MYECLIPSE86平台13412服务器和数据库1342程序设计13421程序设计概述133422三大框架之间的连接和配置14423注册登录模块的程序设计20424个性化设置模块功能的实现24425发表查看文章模块功能的实现24426评论模块功能的实现27427相册模块功能的实现29428组件化分页模块31429个人信息模块334210留言板模块功能的实现35第五章测试博客3951软件测试分析39511测试的目的和重要性39512测试的方法与步骤3

4、952设计测试用例39521单元测试39522集成测试41523验收测试41第六章结束语4261完成效果4262改进意见4263收获体会42参考文献43致谢444第一章绪论11选题背景在科技飞速发展的今天,互联网正成为人们快速获取、发布和传递信息的最为便捷的渠道,它在人们日常的生活和学习中发挥着重要的作用。而近年来博客和博客文化正在成为互联网的热点,并被视为是EMAIL,BBS,ICQ之后的第四种网络交流方式,由于博客的沟通方式比电子邮件、讨论群组等更为简单容易,现在已经成为了家庭、公司、部门、团队之间越来越盛行的沟通工具了。博客正在改变着当今社会的交流方式,越来越多的人选择加入到博客的阵营。

5、我之所以选择做个人博客,首先是因为可以从中学到很多的网络和编程方面的知识,其次通过这个毕业设计可以很好的锻炼自己的动手能力,并提高自己的个人能力。最后个人博客是当前互联网上的热点,它既可以作为一个聊天工具又能作为一个交流的平台,对大多数人而言都是非常实用的。12课题研究意义随着知识经济的到来,人们已经开始向信息化社会迈进。信息增长的速度越来越快,人们希望能够用一种便捷有效的工具来处理这些信息,并从中获取对自己有用的信息,以提高自己的工作效率。在这个信息化的时代,网络技术的运用和发展不仅能够造福于人们,还能够促进社会的进步,经济的发展。因此,作为一种交流和沟通的工具,对博客的研究是非常有必要有意

6、义的。13论文的组织结构和具体安排本次设计的目标是,开发一个个人博客网站。借助该网站,不同年级不同学院的学生可以通过查看文章学习到自己需要的知识,并能够自己发表文章,发表个人的心得体会等。还可以上传自己的照片,聊天交友等等。论文分为五个部分第一章即本章绪论,简述开发个人博客的背景,以及研究博客的意义。第二章为需求分析,本章中明确了博客需要实现的功能,分析了博客的开发流程,并介绍根据需求选择相应的开发工具和技术。第三章是总体设计,详细描述了博客需要的数据库的设计情况,并给出了总体界面的设计方案。第四章为博客的程序设计和具体的编码,包括各个模块的实现方法及其关键的代码,并截取了一些图片作为参考,以

7、便能够更加直观的了解博客的实现情况。第五章是对博客进行整体的测试,测试功能实现并对测试结果进行记录分析。第六章是结束语,总结本次设计中的难点和亮点以及自己在这次毕业设计中学到的知识。5第二章个人博客需求分析21可行性分析个人博客作为一种新的交流沟通的工具和平台,能够有效地促进交流,解决学生的实际问题,方便学生的学习生活,开发本网站的可行性研究如下211技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,能否满足实际的需求。本网站使用JAVA语言开发,利用开源的TOMCAT作为运行服务器,用户界面简洁,易操作。网站的数据库采用开源的MYSQL存储数据,MYSQL能够处理较大的数据,

8、同时保持数据的完整性和安全性。因此开发本网站的平台是成熟可行的。212经济可行性随着经济的发展,计算机的普及程度已经非常的高了,而开发本网站的配置和技术均可行,因此开发这样的一个网站成本是可以控制的,并且网站的运行可以加强学生之间的交流和沟通,方便学生的学习生活,还可以有一定的经济回报,因此该网站在经济上是可行的。22个人博客需求概述221网站目标本网站的核心架构是JAVAEE中的三大框架,在网站中主要有两种类型的用户。即注册用户和非注册用户。注册并登陆的用户可以在网站中查看自己活着他人发表的文章,可以上传自己的照片,还可以对自己感兴趣的文章加以标注和评论。而对于非注册的用户,只能以浏览者的身

9、份进入,可以查看网站中其他人发表的文章,也可以匿名的发表评论,但是不能写文章,也不能上传自己的图片等。23个人博客网站需求模型231功能描述个人博客网站的主要目标是作为一个交流的工具和一个沟通的平台,让不同年级不同专业的学生可以在这里交流学习的经验,可以发表自己的想法,还可以上传自己的图片来聊天交友,本网站的基本功能如下1注册登录凡是要发表文章显示个人信息的用户均必须先注册账号,再通过登录验证才能够进行各种功能的操作,不注册登录的用户在网站中权限较低。2网站设置网站制作者可以修改网页的基本页面,更改系统时间。3用户功能6用户可以查看,删除,评论相应的文章,可以通过问题回自己的账户密码。4其他的

10、功能网站制作者可以管理网站,并拥有起亚用户所拥有的所有的权限和功能。232详细功能描述学生通过浏览器访问到本网站,可以使用一下功能1)注册用户按照规定注册一个正确的账号。2)用户登录输入注册过的用户名和密码登录。3)修改登录密码可以修改自己的登录密码4)查看文章可以查看其它人发表的文章,也可以查看自己已经发表过的文章。5)修改个性化设置可以更改个人的设置6)评论文章可以对好的文章进行评论,还可以查看别人的评论。7)上传相册对登录用户,可以上传自己的照片。8)链接本网站提供了对一些知名博客的链接,可以点击链接进入其他博客网站。8)留言本网站提供了留言板,所有登陆用户都可以进行留言或者查看别人的留

11、言。233主要功能模块处理流程的描述个人博客网站主要可以分为几个个大的模块,第一个模块是用户注册登录模块,即进入网站模块。第二个模块是用户的个性化设置,第三个模块是发表文章,查看文章内容,第四个模块是相册模块开发与RSS订阅。用户注册登录模块(1)功能描述完成注册登录,填写基本信息查看并修改个人信息。(2)具体流程图7个性化设置模块(1)功能描述可以设置个性化页面,用于显示在网站上方。可以修改个性化语句。(2)具体流程图8发表,管理文章模块(1)功能描述登陆成功后发表自己的文章。查看管理自己的文章,还可以查看他人的文章。(2)具体的流程图相册模块开发与RSS订阅(1)功能描述可以点击上传图片到

12、服务器。通过RSS订阅能够快速查找到文章和显示新添加的文章9(2)流程图10第三章整体设计31数据库设计311数据库设计概述数据库是整个系统最核心的部分,数据库设计的好坏直接影响到整个系统的设计成败,因此本节专门来讨论有关数据库的设计。数据库作为管理数据的最新技术。近年来随着计算机的大力发展数据库管理系统已从专用的应用程序发展成为通用的系统软件。由于现在的数据库都具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。数据库的出现改变了人们存储数据的方式,极大地提高了存储数据的能力,方便了人们对数据的管理和利用,并提高了人

13、们的决策的可靠性。目前,数据库已经成为现代信息系统不可分割的重要组成部分。数据库技术也已经成为计算机领域中发展最快的技术之一。数据库设计是将现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。数据库的设计都必须遵循一定的规则,每一个数据库都有自己不同的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集

14、合。一般人们设计数据库都遵循第三范式。即数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了操作数据库的速度。整个博客网站所包括的信息表有1用户信息表(B_USER)2个性化设置表(B_BLOG)3文章列表(B_ARTICLE)4评论列表(B_CRITICLE)5点击量列表(B_CLICKRATE)5留言板列表(GUESTBOOK)等相应信息表。可将这些信息抽象为所需要的数据项和数据结构1用户信息表(用户ID,用户姓名,昵称,邮箱,密码,验证码,是否验证,密保问题,密保答案)2个性化设置表个性化ID,用户ID,个性化题目,个性化内容113文章列表

15、(文章ID,文章标题,文章内容,用户姓名,发表日期,是否已读)4评论列表评论ID,文章ID,评论内容,用户姓名5点击量列表(点击量ID,文章ID,点击IP地址,点击时间)6留言板列表(留言ID,作者,标题,内容,留言时间)注带方框的表示表的主键312用户信息表结构设计用户信息表主要保存博客网站已经注册过的用户基本信息,主要包括用户的登录账户和密码以及一些基本的验证。表的具体结构如下所示用户信息表B_USER字段名称数据类型字段长度是否为空说明USERIDINT10NOKEYUSERNAMEVARCHAR50NO用户名NICKNAMEVARCHAR20NO昵称PASSWORDVARCHAR20N

16、O密码EMAILVARCHAR50NO邮箱EMAILVALIDATECODEVARCHAR50NO邮箱验证码ISVALIDATEEMAILCHAR1YES邮箱是否已验证QUESTIONVARCHAR20NO密保问题ANSWERVARCHAR50NO密保答案313个性化设置表表结构设计该表的设计主要是用于存储登录用户的个性化设置,主要设置其页面,包括个性化标题和个性化内容,当用户进入时其个性化语句会显示在上方页面的中央,表的具体结构设计如下所示个性化设置表B_BLOG字段名称数据类型字段长度是否为空说明BLOGIDINT10NOKEYUSERIDINT10YSE用户ID号BLOGTITLEVAR

17、CHAR20NO个性化标题IDIOGRAPHVARCHAR20NO个性化内容314文章列表表结构设计文章列表主要用来存储用户发表的文章,包括文章的标题,内容,该用户是否已阅读,查看的日期以及用户名。用过该表可以读取当前博客网站的所有文章信息,还可以根据登录用户名查看用户个人发表的文章信息,表的具体结构设计如下所示文章列表B_ARTICLE字段名称数据类型字段长度是否为空说明12ARTICLEIDINT10NOKEYTITLEVARCHAR255NO文章标题CONTENTVARCHAR255NO文章内容USERNAMEVARCHAR255NO用户名DATEDATETIME19YES查看文章日期H

18、ASREADINT10NO用户是否已查看315评论列表表结构设计此表的设计主要用于存储用户对文章的评论信息,主要有两种用户未登录的用户和登录用户,登录用户在评论后会显示其用户名,未登录用户只能以匿名的方式发表评论,表的具体结构设计如下所示评论列表B_CRITICLE字段名称数据类型字段长度是否为空说明CRITIQUEIDINT10NOKEYARTICLEIDINT10NO文章ID号CRITIQUECONTENTVARCHAR500NO评论内容USERNAMEVARVHAR255NO用户名316点击量列表表结构设计该表的设计主要用于记录文章的点击数量,这里要根据用户的IP地址来判断不同的用户,因

19、此该表存储文章的ID号,用户的IP地址以及点击的时间。表的具体结构设计如下所示点击量列表B_CLICRATE字段名称数据类型字段长度是否为空说明CLICKRATEIDINT10NOKEYARTICLEIDINT10NO文章ID号IPVARCHAR255NO访问IP地址CLICKTIMEDATE10YES点击的时间317留言板列表表结构设计该表的设计主要用于记录文章的点击数量,这里要根据用户的IP地址来判断不同的用户,因此该表存储文章的ID号,用户的IP地址以及点击的时间。表的具体结构设计如下所示留言列表GUESTBOOK字段名称数据类型字段长度是否为空说明IDINT10NOKEYAUTHORV

20、ARTHER20YES作者TITLEVARCHAR20YES标题CONTENTVARTHAR500YES评论内容INTIMEVARCHAR20YES留言时间13第四章程序设计与编码41开发平台与工具411MYECLIPSE86平台本博客采用MYECLIPSE工作平台,MYECLIPSE企业级工作平台(MYECLIPSEENTERPRISEWORKBENCH,简称MYECLIPSE)是对ECLIPSEIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTM

21、L,STRUTS,JSF,CSS,JAVASCRIPT,SQL,HIBERNATE。在结构上MYECLIPSE的特征可以分为七类1、J2EE模型;2、WEB开发工具;3、EJB开发工具;3、应用程序服务器的连接;4、J2EE项目部署服务;6、数据库服务;7、MYECLIPSE整合帮助。在个人博客的开发过程中,应用的是MYECLIPSE86这个版本,作为MYECLIPSE较新的版本,MYECLIPSE86中的关键特性有支持最新版本的APACHETOMCAT,支持SPRING项目,SPRING安全向导,SPRING服务从WSDL,SPRING代码辅助管理,完整的JAVA探测,支持AJAX工具,支持

22、WEB服务工具。因此个人博客运行的服务器我选择的是新版本的APACHETOMCAT6035版本。412服务器和数据库在系统的开发过程中使用的服务器是TOMCAT,TOMCAT来源于APACHE软件基金会(APACHESOFTWAREFOUNDATION)的JAKARTA项目中的一个核心项目,由APACHE、SUN和其他一些公司及个人共同开发而成。由于有了前SUN公司的参与和支持,最新的SERVLET和JSP规范总是能在TOMCAT中得到体现。并且因为TOMCAT技术先进、性能稳定,而且免费,成为目前比较流行的WEB应用服务器。因此本博客选择了TOMCAT作为其服务器。开发用的系统工具如下表所示

23、个人博客开发平台和工具工具名称用途MYECLIPSE86TOMCAT60MYSQL55博客的开发平台WEB服务器数据的存储42程序设计421程序设计概述本博客在设计的过程中运用了当今非常流行的编程模式三层架构的思想,即将界面层,业务逻辑层,数据操作层相分离,使用JAVAEE中非常著名的三大框架(STRUTS2,SPRING,HIBERNATE)来分别实现,其中界面层使用STRUTS2,业务逻辑层使用SPRING,数据操作层使14用HIBERNATE。STRUTS2是用于WEB项目中UI层的开源的框架,是经典的MVC模式实现的案例。作为一款开源的框架,STRUTS2具有非常明显的优势和特点1ST

24、RUTS2中将业务数据,显示页面,动作处理等进行分离,极大地方便了代码的维护。2STRUTS2采用的是FRONTCONTROLLER模式来实现对各种触发动作的处理,要求所有的请求都经过统一的入口,再进行转发,方便了我们对代码的统一控制和管理。3STRUTS2中通过ACTION类实现各种逻辑,并且利用STRUTS2的核心标签来完成对数据的呈现。4STRUTS2在SERVLET容器中运行,通过配置文件WEBXML来完成到相应的ACTION的跳转。SPRING主要运用于业务逻辑层,在功能上有润滑剂的美称。SPRING主要通过控制反转,AOP应用,面向接口编程来降低组件之间的耦合度,增加系统的扩展性。

25、SPRING作为一个分层框架,由七个定义良好的模块组成,其中最重要的模块是核心容器。核心容器定义了创建、配置和管理BEAN的方式,并且提供了SPRING框架的基本功能。BEANFACTORY作为核心容器的组件,是工厂模式的实现。其利用控制反转将应用程序的配置和应用分开,减少了代码的耦合。HIBERNATE主要作用于数据层,主要用于封装数据访问层的组件。在应用程序中的数据用对象来体现,而数据库中,数据用表的形式保存。HIBERNATE利用对象关系映射,将应用程序中的对象(OBJECT)与表中的数据(RELATIONSHIP)之间的映射(MAPPING)。利用HIBERNATE可以直接从数据库中取

26、出JAVA对象,并将JAVA对象直接保存在数据库中,中间的SQL等语句都被封装了。422三大框架之间的连接和配置ORGSPRINGFRAMEWORKWEBCONTEXTCONTEXTLOADERLISTENERCONTEXTCONFIGLOCATIONCLASSPATHCONFIG/SPRING/APPLICATIONCONTEXTXML根据需求将SPRING分配置文件分类基本的配置信息DBPROPERTIES,主要用于连接数据库15在SPRING的配置文件APPLICATIONCONTEXTXML中加载外部配置文件信息CLASSPATHCONFIG/PROPS/DBPROPERTIES16D

27、IALECTFORMAT_SQLSHOW_SQLCONFIG/HIBERNATE/HBM/USERHBMXMLCONFIG/HIBERNATE/HBM/BLOGHBMXMLCONFIG/HIBERNATE/HBM/ARTICLEHBMXMLCONFIG/HIBERNATE/HBM/CLICKRATEHBMXMLCONFIG/HIBERNATE/HBM/CRITIQUEHBMXML在HIBERNATE的配置文件里加载数据库表信息17HBM配置文件主要放置表的信息(如ARTICLEHBMXML文件)STRUTS2的配置文件放在自定义的文件夹下在WEBXML中添加STRUTS2监视器STRUTS2O

28、RGAPACHESTRUTS2DISPATCHERNGFILTERSTRUTSPREPAREANDEXECUTEFILTERCONFIG18STRUTSDEFAULTXML,STRUTSPLUGINXML,CONFIG/STRUTS/STRUTSXMLSTRUTS2ACTIONSTRUTS2JSP声明SPRING对STRUTS2管理其中APPLICATIONCONTEXTWEBXML主要用于声明STRUTS2中的ACTION部分代码19其中APPLICATIONCONTEXTBIZXML主要加载业务逻辑层的ACTION(部分代码)APPLICATIONCONTEXTDAOXML主要加载DAO层

29、的ACTION20423注册登录模块的程序设计本模块主要用于用户第一次进入时注册和登录,用户注册时根据提示正确的填写基本信息,成功后即完成。登录时必须输入正确的用户名和密码,否者会提示错误,并禁止用户发表文章。注册界面登录界面21没有账号的用户首先选择注册账户,在成功注册后既可以开始登录了。在正确输入了用户名,密码和验证码后用户登录成功。这里注册界面我用了两种校验,第一种是在客户端JSP页面进行校验,第二层校验是在服务器端校验,利用STRUTS2提供的方法进行。注册模块代码PUBLICCLASSDOREGISTACTIONEXTENDSBASEACTIONPRIVATEUSERUSERPRIV

30、ATESTRINGVALIDATECODEPRIVATESTRINGGETERRORINFOPRIVATEIUSERSERVICEUSERSERVICE/这里要利用SPRING的配置获取器对象PUBLICVOIDVALIDATE/用户名检验IFNULLUSERGETUSERNAME|“EQUALSUSERGETUSERNAMETRIMTHISADDFIELDERROR“USERUSERNAME“,“用户名不能为空“RETURNIFUSERGETUSERNAMELENGTH20THISADDFIELDERROR“USERUSERNAME“,“用户名长度应为520位“RETURN/密码检验IFNU

31、LLUSERGETPASSWORD|“EQUALSUSERGETPASSWORDTRIMTHISADDFIELDERROR“USERPASSWORD“,“密码不能为空“RETURNIFUSERGETPASSWORDLENGTH20THISADDFIELDERROR“USERPASSWORD“,“密码长度应为520位“RETURN/确认密码检验IFNULLUSERGETREPASSWORD|“EQUALSUSERGETREPASSWORDTRIMTHISADDFIELDERROR“USERREPASSWORD“,“重复密码不能为空“RETURNIFUSERGETREPASSWORDEQUALSU

32、SERGETPASSWORDTHISADDFIELDERROR“USERREPASSWORD“,“两次输入密码不一致“22RETURN/昵称检验IFNULLUSERGETNICKNAME|“EQUALSUSERGETNICKNAMETRIMTHISADDFIELDERROR“USERNICKNAME“,“昵称不能为空“RETURNIFUSERGETNICKNAMELENGTH20THISADDFIELDERROR“USERNICKNAME“,“昵称长度应为220位“RETURN/邮箱验证/昵称检验IFNULLUSERGETEMAIL|“EQUALSUSERGETEMAILTRIMTHISADD

33、FIELDERROR“USEREMAIL“,“邮箱不能为空“RETURNIFUSERGETEMAILLENGTH20THISADDFIELDERROR“USEREMAIL“,“邮箱长度应为220位“RETURN/密码保护答案检验IFNULLUSERGETANSWER|“EQUALSUSERGETANSWERTRIMTHISADDFIELDERROR“USERANSWER“,“密码保护答案不能为空“RETURNIFUSERGETANSWERLENGTH50THISADDFIELDERROR“USERANSWER“,“问题长度应为250位“RETURN/检验验证码是否正确IFNULLVALIDAT

34、ECODE|“EQUALSVALIDATECODETHISADDFIELDERROR“VALIDATECODE“,“验证码不能为空“RETURN/获取生成的验证码23STRINGCODESTRINGTHISSESSIONGET“IMAGECODE“IFCODEEQUALSVALIDATECODETHISADDFIELDERROR“VALIDATECODE“,“验证码不正确“RETURNPUBLICSTRINGEXECUTETRY/模拟生成邮箱验证码STRINGEMAILCODEEMAILCODEEMAILVALIDATECODETOSTRINGUSERSETEMAILVALIDATECODEE

35、MAILCODEUSERSETISVALIDATEEMAILFALSE/保存用户信息到数据库IFUSERSERVICEREGISTUSERUSER/将用户信息放在SESSION中保存THISSESSIONPUT“USERREGISTINFO“,USERRETURNSUCCESSELSE/用户名被占用GETERRORINFO“用户名已被占用“RETURN“INPUT“CATCHEXCEPTIONEEPRINTSTACKTRACERETURNERROR用户登录代码PUBLICSTRINGEXECUTETHROWSEXCEPTION/1验证验证码是否正确IFVALIDATECODEEQUALSSTR

36、INGTHISSESSIONGET“IMAGECODE“VALIDATECODEERRORINFO“验证码错误“RETURN“TOLOGIN“/2验证输入的用户名和密码IFUSERSERVICEISRIGHTUSERUSERUSERNAMEORPASSWORDERRORINFO“用户名或者密码错误“RETURN“TOLOGIN“/将用户信息保存在SESSION中24THISSESSIONPUT“USERLOGININFO“,USERSERVICEGETUSERUSERRETURNSUCCESS424个性化设置模块功能的实现本模块的功能是用户对自己的页面进行个性化的设置,可以设置个性化标题和内容

37、,成功后会显示在用户页面的上方,其中个性化设置的界面如下个性化设置代码/获取个性化内容PUBLICBLOGGETBLOGINFOUSERUSERLISTLISTTHISGETHIBERNATETEMPLATEFIND“FROMBLOGBLOGWHEREBLOGUSER“USERGETUSERIDINTSIZELISTSIZEIFLISTSIZE0RETURNNULLELSERETURNLISTGETSIZE1/保存个性化内容,更新个性化内容PUBLICVOIDSAVEBLOGBLOGTHISGETHIBERNATETEMPLATESAVEORUPDATEBLOG425发表查看文章模块功能的实现

38、该模块主要有两个大的部分用户发表文章和查看自己的文章或者其他人的文章。用户要发表文章必须先登录,否者不允许发表,文章的发表的界面如下25用户在发表文章时还可以添加图片和表情等信息如插入表情显示文章显示文章内容26发表,显示文章代码/保存文章代码PUBLICVOIDSAVEARTICLEARTICLEARTICLETHISGETHIBERNATETEMPLATESAVEORUPDATEARTICLE/显示文章代码,这里要用到分页显示PUBLICLISTFINDALLARTICLEUSERUSERRETURNTHISGETHIBERNATETEMPLATEFIND“FROMARTICLEARTWH

39、EREARTUSERNAME“,USERGETUSERNAME分页查询代码/分页查询核心PUBLICLISTFINDBYPAGEFINALUSERUSER,FINALPAGEPAGERETURNTHISGETHIBERNATETEMPLATEEXECUTEFINDNEWHIBERNATECALLBACKPUBLICOBJECTDOINHIBERNATESESSIONSESSIONTHROWSHIBERNATEEXCEPTION,SQLEXCEPTIONQUERYQUERYSESSIONCREATEQUERY“FROMARTICLEARTWHEREARTUSERNAME“/设置参数QUERYSE

40、TPARAMETER0,USERGETUSERNAME/设置每页显示多少个,设置多大结果。QUERYSETMAXRESULTSPAGEGETEVERYPAGE/设置起点QUERYSETFIRSTRESULTPAGEGETBEGININDEXRETURNQUERYLIST/查询文章总数PUBLICINTFINDALLARTICLECOUNTRETURNLONGTHISGETHIBERNATETEMPLATEFIND“SELECTCOUNTFROMARTICLE“GET0INTVALUE/封装分页PUBLICPAGEINTEVERYPAGE,INTTOTALCOUNT,INTTOTALPAGE,I

41、NTCURRENTPAGE,INTBEGININDEX,BOOLEANHASPREPAGE,BOOLEANHASNEXTPAGETHISEVERYPAGEEVERYPAGETHISTOTALCOUNTTOTALCOUNTTHISTOTALPAGETOTALPAGE27THISCURRENTPAGECURRENTPAGETHISBEGININDEXBEGININDEXTHISHASPREPAGEHASPREPAGETHISHASNEXTPAGEHASNEXTPAGE/分页显示PAGEPAGENEWPAGEPAGESETCURRENTPAGETHISGETCURRENTPAGEPAGESETEVE

42、RYPAGE2RESULTRESULTARTICLESERVICESHOWARTICLEBYPAGEPAGEPAGERESULTGETPAGELISTALLRESULTGETLIST/点击量设置/获取登录IPLOGINIPLOGINIPNEWLOGINIPSTRINGIPLOGINIPGETLOGINIPADDRESS/获得日期SIMPLEDATEFORMATSDFNEWSIMPLEDATEFORMAT“YYYYMMDD“STRINGSTIMESDFFORMATNEWDATEDATECLICKTIMESDFPARSESTIMECLICKRATECLICKRATENEWCLICKRATECLIC

43、KRATESETARTICLEIDARTICLEIDCLICKRATESETCLICKTIMECLICKTIMECLICKRATESETIPIP/判断是否已访问过IFCLICKRATESERVICEISVISTORCLICKRATEARTICLESETHASREADARTICLEGETHASREAD1/将更新的点击量保存到数据库中ARTICLESERVICESAVEARTICLEARTICLE426评论模块功能的实现评论模块主要是在查看文章后对文章内容进行评论,如果用户已经登录则发表评论后会显示用户名,会登录的用户只能以匿名的方式发表评论。具体的界面如下显示评论28添加评论显示评论代码/从数据

44、库中获取评论PUBLICLISTFINDBYPAGEFINALARTICLEARTICLE,FINALPAGEPAGERETURNTHISGETHIBERNATETEMPLATEEXECUTEFINDNEWHIBERNATECALLBACKPUBLICOBJECTDOINHIBERNATESESSIONSESSIONTHROWSHIBERNATEEXCEPTION,SQLEXCEPTIONQUERYQUERYSESSIONCREATEQUERY“FROMCRITIQUECRIWHERECRIARTICLEID“/设置参数QUERYSETPARAMETER0,ARTICLEGETARTICLEI

45、D/设置每页显示多少个,设置多大结果。QUERYSETMAXRESULTSPAGEGETEVERYPAGE/设置起点QUERYSETFIRSTRESULTPAGEGETBEGININDEXRETURNQUERYLIST/分页显示评论PAGEPAGENEWPAGEPAGESETCURRENTPAGETHISGETCURRENTPAGEPAGESETEVERYPAGE229RESULTRESULTCRITIQUESERVICESHOWCRITIQUEBYPAGEARTICLE,PAGEREQUESTSETATTRIBUTE“PAGE“,RESULTGETPAGEREQUESTSETATTRIBUT

46、E“ALLCRI“,RESULTGETLISTCRITIQUE427相册模块功能的实现相册模块主要是登录用户可以上传自己的图片,图片最终保存在数据库中的一个文件夹下,根据不同的用户来加以区分利用个谷歌开源的框架GREBOX查看相册信息显示相册模块的代码PUBLICSTRINGEXECUTETHROWSEXCEPTION/获得USERNAMEUSERUSERUSERTHISSESSIONGET“USERLOGININFO“USERNAMEUSERGETUSERNAME/设置文件目录STRINGPHOTOPATH30SERVLETACTIONCONTEXTGETSERVLETCONTEXTGETR

47、EALPATH“/USER/PHOTO/“USERNAME/使用FILE封装FILEFPHOTOPATHNEWFILEPHOTOPATH/获得相册目录的所有图片文件STRINGPHOTOLISTFPHOTOPATHLIST/将图片列表设置到REQUEST范围HTTPSERVLETREQUESTREQUESTSERVLETACTIONCONTEXTGETREQUESTREQUESTSETATTRIBUTE“PHOTOLIST“,PHOTOLISTRETURNSUCCESS上传图片代码PUBLICSTRINGEXECUTETHROWSEXCEPTION/创建一个输入流INPUTSTREAMISNE

48、WFILEINPUTSTREAMMYFILE/获取用户名USERUSERUSERTHISSESSIONGET“USERLOGININFO“/设置文件保存目录STRINGPHOTOPATHSERVLETACTIONCONTEXTGETSERVLETCONTEXTGETREALPATH“/USER/PHOTO/“USERGETUSERNAMEFILEFILEPHOTOPATHNEWFILEPHOTOPATHIFFILEPHOTOPATHISDIRECTORYFILEPHOTOPATHMKDIR/解决中文文件名的WENTSTRINGEXTENSIONFILENAMEUTILSGETEXTENSION

49、THISGETMYFILEFILENAMESTRINGFILENAMEUUIDRANDOMUUIDTOSTRING“EXTENSION/设置目标文件FILETOFILENEWFILEPHOTOPATH,FILENAME/使用输出流来包装目标文件OUTPUTSTREAMOSNEWFILEOUTPUTSTREAMTOFILEBYTEBUFFERNEWBYTE1024INTLENGTH031WHILELENGTHISREADBUFFER0OSWRITEBUFFER,0,LENGTH/关闭输入流ISCLOSE/关闭输出流OSCLOSERETURNTHISSUCCESS428组件化分页模块组件化分页即将有关分页的信息都放在一个类里进行封装,外界如果需要分页则只需调用该类的相应方法即可。定义分页有关的变量PUBLICCLASSPAGEPRIVATEINTEVERYPAGE/每页显示数量EVERYPAGEPRIVATEINTTOTALCOUNT/总记录数TOTALCOUNT

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。