博客系统的设计与实现(完整)_第1页
博客系统的设计与实现(完整)_第2页
博客系统的设计与实现(完整)_第3页
博客系统的设计与实现(完整)_第4页
博客系统的设计与实现(完整)_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计题目:基于SSH构架的博客系统的设计和实现Englishtitle:TheDesignandImplementationfortheblogssystembasedonSSH姓名:xxxxx学号:xxxxxxx专业名称:计算机科学与技术指导教师:xxxxx二零一零年五摘要本文研究了当今博客系统的市场需求和种种的优势与不足,以及博客在中国发展迅速这一现状,提出了开发一个专业的博客管理系统的思想。本文对博客系统的运行机制、组成、相关可应用技术进行了深入的研究和分析,确定符合现在博客管理的需求,详细阐述了系统的总体设计和详细设计,并在此基础上,应用当前最流行的J2EE三层结构、JSP技术、数

2、据库等与系统开发相关的技术完成系统主要功能的实现。本博客系统致力为广大用户提供优质的互动交流平台,实现对博客发表文章、评论、图片、好友等数据的管理,同时实现了博客内容及时、快速更新的功能,系统不仅保留了传统博客系统的功能,还加上了一些人性化的界面设计,使用户对博客的操作更为的方便。为了满足博客信息管理系统的要求,实现系统静态与动态页面的相互分离,本系统采用了ssh构架设计,从职责上分为三层:表示层、业务逻辑层、数据持久层。其中使用StRUtS2作为系统的整体基础架构,负责MVC的分离,在StRUts2框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法

3、是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。关键词:表示层;业务逻辑层;数据持久层;Struts;Hibernate;SpringAbstractInthispaperanalyzesthemarketdemandofbloggingsystemanditsadvantagesandinadequate,andthestatusofthatblogsdevelopedrapidly

4、inchina.Proposedtodesignacorporatesshbasedbolgsystemsthinking.PapersontheBlogSystemoperationmechanism,composition,relatedtechniquescanbeappliedtoin-depthresearchandanalysis,detaileddesignofthesystemanddetaileddesign,andonthisbasis,applicationofthemostpopularj2eethree-tierstructureandjsptechnology,da

5、tabasesandthesystemsdevelopmentoftechnologytocompletesystemofthemainfeatures.Thisblogsystemiscommittedtoofferhighqualityinteractiveexchangeplatformforcustomers.Implementemanagethedataofpublisharticles,comments,pictures,companionsandsoon.ThesystemusesSSHframeworkdesigninordertomeetthebloginformationm

6、anagementsystemrequirements,andimplementthestaticanddynamicpagesseparate.Thesystemisdividedintothreelayersbasedonthefunctions;therearePresentationLayer,BusinessLogicLayerandDataPersistenceLayer.ItusesStruts2asoverallinfrastructuretoseparatetheMVC.InthemodelpartoftheStruts2,itusesHibernateframeworkto

7、supportpersistencelayerandusesSpringframeworktosupportbusinesslayer.Thespecificapproachisaccordingtothedemandtoproposesomemodelswiththeobject-orientedanalysismethod,andrealizesthesemodelsforbasicobjectofJava,thencompilesthebasicDAOconnectionandrealizesitinHibernate.ItusestheDAOwhichmadebytheHibernat

8、eframeworktoachievetheconversionandaccessbetweenJavaanddatabase,finallyitcompletestheservicelogicbySpringframework.Keywords:PresentationLayer;BusinessLogicLayer;Datapersistencelayer;Struts;Hibernate;Spring绪论错误!未定义书签。1.1概述1。1.2研究背景和发展趋势错误!未定义书签。1.2.1研究背景。错误!未定义书签。122发展趋势错误!未定义书签。1.3研究的目的和意义错误!未定义书签。1

9、.4本文工作概述错误!未定义书签。.5本文结构错误!未定义书签。第2章系统相关技术。错误!未定义书签。.1体系结构。错误!未定义书签。JSP简介错误!未定义书签。ECLIPSE简介错误!未定义书签。TOMCAT简介。错误!未定义书签。2.5MYSQL简介。错误味定义书签。Struts2简介错误!未定义书签。Spring简介错误!未定义书签。Hibernate简介错误!未定义书签。第3章系统分析8。系统可行性分析:8。系统需求分析:错误!未定义书签。3.2.1功能需求分析错误!未定义书签。系统的业务需求及流程错误!未定义书签。3.2.3系统数据分析及数据流图错误!未定义书签。.4系统数据字典。错

10、误!未定义书签。第4章系统数据库设计。错误!未定义书签。4.1概念设计。错误!未定义书签。4.2数据表结构错误!未定义书签。数据表结构关系。错误!未定义书签。第5章系统总体设计错误!未定义书签。系统的总体设计原则。错误!未定义书签。5.2系统功能设计。错误!未定义书签。521总体功能描述错误!未定义书签。功能模块设计错误!未定义书签。第6章系统详细设计与实现。错误!未定义书签。SSH构架的搭建及配置文件。错误!未定义书签。系统编码设计错误!未定义书签。.1编写持久对象层类。错误!未定义书签。编写数据访问层类错误!未定义书签。编写业务逻辑层类。错误!未定义书签。编写WEB层类。错误!未定义书签。

11、6.3系统主要功能模块详述错误!未定义书签。6.3.1后台:博客管理模块。错误!未定义书签。6.3.2前台:用户界面模块错误!未定义书签。总结与展望错误!未定义书签。7.1博客系统的主要特点错误!未定义书签。7.2系统的不足之处。错误!未定义书签。7.3前景展望错误!未定义书签。致谢。错误!未定义书签。参考文献。错误!未定义书签。绪论“博客”(Blog或Weblog)词源于“WebLog(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式。任何人都可以像使用免费电子邮件一样,完成个人网页的创建、发布和更新。博客就是开放的私人空间,可以充分利用超文本链接、网络互动、动态更新等特点,在网络

12、中,精选并链接全球互联网中最有价值的信息、知识与资源;也可以将个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交流沟通。它目前是众多机构和媒体评为的最热门的互联网现象。其实博客并没有特别之处。但不经意间,博客竟如雨后春笋般冒出来,博得了越来越多网民的欢心,并引发了各种新的应用热潮。它最大的吸引力在于,只要你会发邮件,就可以轻松创建自己的网络媒体。概述博客是个人性和公共性的结合体,其精髓不是主要表达个人思想,不是主要记录个人日常经历;而是以个人的视角,以整个互联网为视野,精选和记录自己在互联网上看到的精彩内容,为他人提供

13、帮助,使其具有更高的共享价值。博客精神的核心并不是自娱自乐,甚至不是个人表达自由,相反,是体现一种利他的共享精神,为他人提供帮助。个人日记和个人网站主要表现的还是“小我”,而博客表现的是“大我”。也许形式上很接近,但内在有着本质的差异。所有优秀博客网站中,真正表达作者个人的内容非常有限,最多只是点缀,而不像个人网站那样是核心。研究背景和发展趋势1.2.1研究背景博客的精神是:自由表达,开放宽容,个性张扬,专业精神。在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法

14、或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。1.2.2发展趋势趋势一:博客现在正在形成个人的信

15、誉机制,有了博客之后就确立了一个个人虚拟身份,简单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名的行为,网民从流浪汉变成了一个定居者。以前在互联网上的各种行为都是在匿名状态中,相互之间是不认识的,但有了博客之后可以天天关注,而别的人也可以通过博客找到这个人。这样随着时间的积累就会产生一个新的东西,概括叫做“个人的信誉”,个人的信誉就是博客和博客之间发展各种关系的组合,这种信誉对每个人来讲可能是不同的,但对每个博客来讲就产生了新的评价机制,这个机制将是博客商业化的一个前提条件。趋势二:博客越来越呈现出富媒体化,早期的博客是以文字为主,但随着多媒体发展博客相册、博客图片已经成为博客的基本配

16、置,而现在许多博客网站已经提供了博客音频和博客视频。趋势三:博客现在正在形成并完善精选机制,博客作为自媒体和个人媒体,产生的信息非常巨大。其中难免产生信息垃圾,随着博客的发展,博客通过精选机制精选出大家喜闻乐见的信息,像国内网摘、博客的评价系统等。1.3研究的目的和意义随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,人们对Internet应用的需求也越来越多,其中网上交友或利用网络和朋友家人联系,在线管理自己的相片等已经成为广大网民的共同需求,在这个背景下,我们的博客系统应需而出。一般一个博客就是一个页面,它通常由简短而且经常更新的帖子构成,所有的文

17、章都是按照年份和日期排列,有些类似斑竹的日记。看上去平淡,但它可以让每个人零成本、零维护地创建自己的网络媒体,每个人都可以随时把自己的思想和灵感更新到博客站点上。博客的人性化和平民视角使得它提供的消息更贴近人们的生活,极大的丰富了人们业余生活,同时也给人与人之间的沟通架起一座桥梁。4本文工作概述本论文对基于SSH结构的博客管理系统进行了深入的研究,并对系统的关键技术和分析设计进行了详细的分析阐述。利用该系统,网友可以在网络上发表日志、修改和删除日志、上传照片、查询博文、浏览博文、对日志发表评论、给博主留言。其中涉及到的主要内容有:对系统的可行性及发展趋势进行分析,完成整个博客管理系统的需求分析

18、和总体设计。对系统体系结构及设计实现中使用的相关技术进行分析。完成系统主要功能的详细设计与实现,包括:前台模块、后台模块,其中前台模块包括:日志浏览模块、相册浏览模块、留言模块、浏览博主好友模块,后台模块包括:登陆、注册功能模块、日志管理模块、日志类型管理模块、好友管理功能、相册管理模块、留言管理模块。关于系统权限和安全性问题的探讨。1.5本文结构本文分为七部分。第一部分首先介绍博客系统的研究背景及发展现状,提出运用网络技术开发博客管理系统的目的和意义。第二部分分析与系统设计及实现相关的技术和数据库技术,明确系统的操作流程。第三部分对博客管理系统进行需求分析,包括对系统进行可行性分析,确定在目

19、前的条件下,开发博客系统是可行的。第四部分对系统数据库的分析设计,对系统中的数据库进行模型设计,包括数据流图、实体联系图及数据表结构。第五部分对系统的总体设计进行了全面说明,确定系统的开发思想以及开发环境,并对系统中的代码进行设计。第六部分阐述基于SSH结构博客管理系统主要功能的详细设计与实现。第七部分对博客系统的研究与设计工作进行总结,指出系统建设中存在的不足及解决方案,为将来系统的设计改进打下基础。第2章系统相关理论基础本系统的开发采用的是当下最流行的SSH构架Struts2+Hibernate+Spring框架,在该框架中JavaEE的3层结构:表示层、业务逻辑层、数据持久层完美结合在一

20、起。实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率2.1体系结构SSH框架是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技

21、术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。Web层,就是MVC模式里面的“C”(controlier),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以

22、面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决这个问题。JSP简介JSP即JavaServerPages,是基于JavaServ1et以及整个Java体系的Web开发技术。JSP已经成为开发Web动态网页重要、快速和有效的工具,是全新的网络服务器编程环境。JSP充分利用了Java的强大功能,是一种优秀的服务器

23、端技术。随着Java技术的日益成熟和流行JSP在网络编程中也变得越来越重要。JSP基于强大的Java语言,具有极强的扩展能力,良好的缩收性,与平台无关的开发特性,成为构建动态网站的主流技术之一JSP有着其他技术所不具备的优势。其优势在于:可以将内容的生成和显示进行分离、生成可重用的组件、采用标识简化页面开发。ECLIPSE简介MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE

24、集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:JavaEE模型、WEB开发工具、EJB开发工具、应用程序服务器的连接器、JavaEE项目部署服务、数据库服务、MyEclipse整合帮助。TOMCAT简介Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。当在一台机器上配置好A

25、pache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当运行tomeat时,它实际上作为一个与Apache独立的进程单独运行的。配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和ServletoTomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。5MYSQL简介MySQL是一种数据库管理系统。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,

26、或是作为独立的实用工具,或是作为其他应用程序的组成部分。MySQL是一种关联数据库管理系统。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。MySQL软件是一种开放源码软件。MySQL数据库服务器具有快速、可靠和易于使用的特点。MySQL服务器有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了MySQL服务器和其他数据库管理器的比较结果。(5)MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中。MySQL数据库软件是一种客户端/服务器系统,由支持不同后端的1个多线程SQL服务器,数种不同

27、的客户端程序和库,众多管理工具和广泛的应用编程接口API组成。Struts2简介Struts2是一个优秀的,可扩展的企业级JavaWEB应用程序框架。它是一个MVC(ModelViewControl1er,模型,视图,控制)框架,Struts2提供控制和视图组件,并通过集成其它的技术来提高模型。框架的控制功能表现在连接应用程序的模型和WEB视图。当接收到一个请求,控制层调用一个Action类。Action类检查或更新应用程序的状态通过模型层。传递数据在模型层和视图层之间,属性可以被放在Action类,或是一个古老又普通的JAVA类中。通常,模型代表一个JavaBean对象图。模型用来做“持久性

28、”的工作,同时Action将扮演一个“交通警察”或适配器,框架会提供复杂的,自动类型转换到简单的传输数据,在域对象和文本的HTTP请求之间。Spring简介Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。模块的功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)

29、模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。SpringDAO:JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。SpringDAO的面向JDBC的异常遵从通用的DAO异常层次结构。SpringMVC框架:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术。Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境oSpring的核心要点

30、是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Quer

31、y和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。第3章系统分析系统可行性分析可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和调查,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了一下三个方面的分析。(1)经济可行性。经济可行性主要是对项目的经济效益进行评价。本系统对系统开发者来说并不需要太高的成本支出,只是对系统的管理者

32、付出管理报酬饥渴,而且开发周期不需要太长,节省了人力、物力、财力资源,所以本系统在经济上是可行的。(2)技术可行性。技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需求等。在软件方面,本系统采用的是JSP的J2EE三层结构的SSH构架进行开发,数据库采用了MYSQL;在硬件方面,本系统对机器本身没有太高要求,一般个人电脑完全满足。通过分析,具有技术上的可行性。(3)操作可行性。界面设计时充分考虑用户的习惯,使得操作简单。综上所述,本系统开发目标已明确,在技术和经济等方面具备可行性,并且投入少、见效快,因此系统的开发时完全可行的。系统需求分析:3.2.1功能需求

33、分析本博客系统分为前台和后台两个大模块,其中后台为博客管理页面,前台为用户界面。(1)后台主要包括以下几个功能:登陆、注册功能:用户可以注册,注册时用户输入注册信息,同时向数据库中保存用户注册信息。进入后台时要登录,输入用户名和密码。日志管理:用户可以发表日志,对日志信息查看、修改和删除。日志信息包括标题、发表时间、所属类型、日志描述信息等。日志类型管理:用户可以添加、删除、修改日志类型。好友管理功能:用户可以添加、删除、查看好友,访问好友的博客相册管理:上传图片到自己的相册,删除相册中的照片,查看上传的照片。留言管理:用户可以对访问者给自己的留言查看和删除。(2)前台主要包括以下功能:日志查

34、看功能:访问者可以查看博主的日志,并可以按照日志分类来查看。还可以对博主的日志发表评论。相册查看功能:查看博主上传的图片。留言板功能:给博主留言。查看博主的好友:查看博主的好友。3.2.2系统的业务需求及流程注册用户可以注册、登录本系统,对文章、相册、好友、留言等进行管理,其中包括对各个模块的信息的增、删、改、查操作。网友可以访问博主的博客,浏览博主的文章、相册、好友等信息,还可以对文章进行评论,给博主留言。博客系统中,主要是注册用户管理文章、留言、相册、好友等数据,数据的类型决定了程序对数据的处理方式也就是算法,因此,数据是实现分析的起点。现通过数据流图的方式分析系统中的数据的流动和处理。对

35、注册用户,登陆博客系统后,系统接收用户的添加、修改、删除请求,通过分析将这种请求转化为相应的HQL或者SQL语句执行对数据库的相关的操作,并将执行的相应结果送回系统中。系统接收到数据库返回的结果集,经过一定得分析处理,将其转换为JSP页面,返回到客户端显示给用户。系统运行过程中,主要涉及到两部分的数据流向,一部分是博客注册用户在系统后台管理界面发出对数据库操作的数据流,另一部分是用户在应用前台使用系统时所产生的数据流。图3-2博客管理系统数据流图对每一个注册用户,可以细分为添加、修改、删除、浏览等操作,现以文章管理为例,其具体细节数据流图如图3-3所示:确认浏览fI!.确认添加仃恩一ATOC

36、o 1-5 h z厂A修改文总确认槪谊盘_ognl-2.6.ll.jar、struts2core-2.0.14.jar、xwork-2.0.7.jar、struts2-springplugin-2.0.14.jar。加载spring,选中工程名,右击并选择【MyEclipse】选项下的【AddSpringCapabilities.】(或者在工具栏中选择【MyEclipse】下的【AddSpringCapabilities.】),在弹出的对话框中进行如下选择:Spring2.5AOPLibraries、Spring2.5CoreLibraries、Spring2.5PersistenceCore

37、Libraries、Spring2.5WebLibraries、Spring2.5PersistenceJDBCLibraries。点击【Next】,点击Folder文本框后的【Browse】,在弹出对话框中选择spring配置文件存储位置为WEB-INF文件夹:点击【OK】后,再点击【Finish】完成。至此已经完成加载spring,在WEB-INF文件夹下已经生成了配置文件applicationContext.xml。加载Hibernate,选择【MyEclipse】下的【AddHibernateCapabilities.】,在弹出对话框中进行如下所示操作:全选MyEclipseLibra

38、ries,然后选择CopycheckedLibrary点击【Next】后,选择ExistingSpringconfigurationfile单选框,在SessionFactoryId文本框中填入sessionFactory,如下所示:选择ExistingSpringconfigurationfile,选择前面的applicationContext.xmlSessionFactoryId:sessionFactory点击【Next】,进行如下所示操作:这里需要选择一个之前在MyEclipse中配置好的一个数据库链接。该操作中,只需在BeanId文本框中输入一个Id名,作为数据库源的代用名,意义不

39、大。然后在DBDriver下拉列表中,选择MyEclipse中创建好的数据库源xiaoqi,其他信息将自动填写。点击【Next】,在弹出对话框中去掉CreateSessionFactoryclass?复选框,不创建该类,点击【Finish】完成(创建过程中,加载的jar包文件可能有重复,所以这个时候如果提示有某些jar包重复,问全部保存【KeepExiting,还是替换掉【Replace】,可以选择替换掉【Replace】)。配置web.xml文件,其内容如下:反向生成实体类文件:在src包下新建一个entity包,将前面数据源所示的数据库中的各个表反向生成Hibernate实体类文件。(7)

40、创建数据操作文件:在src包下创建dao包。(8)创建Action:在src包下新建一个包actionso(9)创建jsp页面。6.2系统编码设计6.2.1编写持久对象层类该层由若干实现类即普通的JAVA类(PO)组成,这些需要在相应的映射文件中配置,可以在数据访问层的实现类中通过Hibernate框架来访问持久对象层。本系统共有七个数据库表,分别有七个实体类和它们映射。每个Java类又对应一个.hbm.xml映射文件,来将java类的实体变量与数据库的字段映射在一起。以文章表为例:(1)Article.java文件:packageentity;importjava.io.Serializab

41、1e;publieclassArticleimplementsSerializableoprivateintarticleld;/文章的IDoprivateintarticleTypeld;/文章类型的IDprivateintuserId;/注册用户的IDprivateStringarticleTitle=”;/文章标题oprivateStringarticleContent=;/文章内容privateStringarticleSendTime=;/发表文章的时间privateStringarticleCreate=;/文章的来源privateStringarticleInfo=;/文章的描述

42、信息o/每个属性的getter和setter方法publicintgetArticleId()returnarticleId;oopublicintgetUserId()ooreturnuserId;opublicvoidsetUserld(intuserid)oothis.userId=userId;opub1icvoidsetArticleId(intarticleId)othis.articleId=articleId;publicintgetArticleTypeld()breturnafticleTypeld;bpublicvoidsetArticleTypeId(intartic1

43、eTypeId)this.articleTypeId=articleTypeId;訂bpub1icStringgetArticleTitle()breturnarticleTit1e;bpublicvoidsetArticleTitle(StringarticleTitle)this.articleTitle=articleTitle;bpub1icStringgetArtic1eContent()breturnarticleContent;bpublicvoidsetArtic1eContent(StringarticleContent)bthis.articleContent=articl

44、eContent;bpublicStringgetArticleSendTime()bbreturnarticleSendTime;bbpublicvoidsetArticleSendTime(StringarticleSendTime)this.articleSendTime=articleSendTime;bpublicStringgetArticleCreate()breturnarticleCreate;bbpublicvoidsetArticleCreate(StringarticleCreate)bbthis.articleCreate=artic1eCreate;bpublicS

45、tringgetArticleInfo()breturnarticleInfo;bpub1icvoidsetArticleInfo(Stringartic1eInfo)bbthis.artic1eInfo=articleInfo;(2)Article,hbm.xm1文件:Vhibernate-mappingpackage=entityyidname=artic1eldtype=intVco1umnname=article_id1ength=5/bygeneratorclass=assignedgbb“Vco1umnname=user_idlength=5/bbbbbbbbbbbbbbbbbbb

46、bbbbbVco1umnname=artic1e_infolength=10O/6.2.2编写数据访问层类数据访问层类即DAO层的类,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。本节以与好友表交互为例:FriendDao.java文件:packagedao;importjava.util.List;importofg.springframework.orm.hibernate3.HibernateTemplate;importentity.Friend;publieclassFriendDaoextendsDAOSupportpublicFriendDao(HibernateT

47、emplatetemplate)bsuper(template);/功能修改好友信息bpublicbooleanoperationFriend(Stringoperation,Friendsingle)bbif(operation=null)boperation=;bbif(operation.equals(add)bbtemplate.save(single);bif(operation.equals(modify)bbtemplateupdate(single);bif(operationequals(delete)btemplate.delete(single);returntrue;b

48、/功能查询所有好友publicListqueryFriend(intid)bbStringhql=FROMFriendwhereuserId=+id+ORDERBYfriendName;returntemplatefind(hql);b/功能根据ID查询某个好友的详细信息bpublicFriendqueryFriendSingle(intid)breturn(Friend)templateget(Friend.class,id);6.2.3编写业务逻辑层类业务逻辑层即Service层,负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DA0组件的正面模式包装,完成系统所要求的业务逻辑。以好友

49、表为例:FriendService.java文件:packageservices;importjava.uti1.List;importdao.FriendDao;importentity.Friend;pub1icclassFriendServiceoprivateFriendDaofriendDao;publicFriendService(FriendDaofriendDao)othis.friendDao=friendDao;o/添加好友publicbooleanaddFriend(Friendsingle)returnfriendDao.operationFriend(add,sing

50、le);/删除好友publicboo1eandeleteFriend(Friendsingle)returnfriendDao.operationFriend(delete,single);/修改好友publicbooleanupdateFriend(Friendsingle)oreturnfriendDao.operationFriend(modify,sing1e);o/获取指定id的好友publicFriendgetFriendInfo(intid)ooreturnfriendDao.queryFriendSingle(id);o/列出好友publicListqueryFriendLis

51、t(intid)oreturnfriendDao.queryFriend(id);o6.2.4编写WEB层类该层主要包括JSP页面、MVC中的“C”(Control),其中“C”就是Struts2中的Aciton类。在Action类中主要负责调用业务逻辑层的组件,并返回相应的结果(result)。(1)Action类的编写LoginAction.java文件:packageactions;importservices.UserService;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.Act

52、ionSupport;importentity.User;pub1icclassLoginActionextendsActionSupportoprivateUseruser;privateUserServiceuserService;publicUsergetUser()oreturnuser;opublicvoidsetUser(Useruser)othis.user=user;pub1icUserServicegetUserService()oreturnuserService;oopublicvoidsetUserService(UserServiceuserService)this,

53、userService=userService;opub1icStringexecute()throwsExceptionointid=this.userService.verifyUser(user);ooif(id0)ActionContext.getContext().getSession().put(userlD,id);ActionContext.getContext().getSession(),put(USER,user);ooreturnSUCCESS;elseooreturninput;(2)sJsp页面的编写JSP页面主要用来显示后台的信息,呈现给用户的界面。以后台文章显示

54、为例:添加文章的JSP页面AdminArticleAdd.jsp文件:vtitle博客后台管理-发表文章Vlinkrel=stylesheethref=$pageContext.request.contextPath/css/style_admin.cssntype=text/cssoV/headybodyoovcenterVtablewidth=778border=0cellspacing=0cellpadding=0oobgcolor=#FFFFFFstyle=word-break:break-alltrVtdcolspan=2oooooooooVtdalign=centervalign=

55、topooo【发表文章】V/td文章类别:oo$list.articleTypeName/c:forEach文章标题:Vtdalign=center文章来源:V/tdxtdVselectname=article.articleCreatestyle=width:100ooo原创oVoptionvalue=摘自摘自V/selectV/trtr文章描述:Vtdalign=centervalign=top文章内容:V/tdvtdv/s:textareaV/tdv/trVtdcolspan=2align=centerVinputtype=resetclass=btn_bgvalue=重置V/tdv/s

56、:formv/tdV/center系统主要功能模块详述63.1后台:博客管理模块(1)网民可以注册为博客会员,拥有自己的博客,用户在登录时系统具有输入有效性检测功能,如果用户名和密码任何一项为空,则提示用户,实现该功能使用了过滤器:LoginActionvalidation.xm1文件:Vfieldname=user.userNameyparamname=trimtrue“请输入用户名!v/messageoV/fieldvalidatorv/fie1dvfieldname=user.userPasswordooVfie1d-validatortype=requiredstringvparamn

57、ame=trimtruev/paramv!-检查时去掉前后空格-oVmessage请输入密码!V/messageooV/fie1dvalidatorov/fieldv/validators如图6-1是登陆模块的界面显示:图6-1登陆模块(2)日志管理模块,开博的网民可以在博客系统上进行撰写日志、查看日志、删除日志、修改日志等操作。1.如图6-2为查看日志的界面显示:图6-2查看日志2删除日志时,系统要弹出确认对话框,确认用户是否确定要删除文章,【确定】则文章被删除,同时刷新文章列表的显示,【取消】停在当前页面,不做任何改变。如图63为删除日志的界面显示:图6-4日志列表mm矩寒时貝AZ0IEH

58、I5-CBm:K3E6打、用ZOIEHiq-ZT13:4610.t.nJ:TL3:4fiq6.廿匸-:hj-t女戦别:_语选理-A12CpTi-dits?raierTtd201图6-3删除日志3.日志列表按时间顺序显示博主的文章,同时还可以查看某一类型的全部文章,实现这功能的方法是在DAO层查询数据时,按文章类型进行条件查询,hql查询语句如下:hql=FROMArticlewherearticleTypeId=+typeld+anduserId=+userId+orderbyartic1eSendTimeDESC;如图6-4为日志列表显示界面:后台管理1冃册它哩:严注:_帝直押-:谧址农时间

59、巨豆:时托m有可超帧J綁wffltO-fl4-27Ji39:LLI-|Sit:-AUi刍飞WZ0L0-U4-ET】3击:46/倦改-删晾AllCr-PTfiLchts?rcitrTftd2030图6-6为日志类别列表4.如图6-5为修改日志界面显示:LI:厂:冲】宁岂口;2T:巧圣呼奇闾异丰”0半I:1.lT-.riim:;.V/s:fi1e标签,同时在相应的action类中进行上传处理,PhotoAction.java中关键代码如下:/设置两个变量分别接受上传过来的文件的属性private;/上传的文件privateStringpicture;文件名称/由于上传到服务器上的图片文件为临时文件

60、,所以要将临时文件保存到服务器上的指定文件夹中,以便读取。privatevoidupLoad()Stringparent=ServletActionContext.getServletContext().getRealPath(upload);Stringpath=parent+picture;“photo.setPhotoAddr(path);/将上传的路径存储在数据库中=new,picture);InputStreamins=null;zOutputStreamous=null;trysaved.getParentFile().mkdirs();ins=new(picture);bous=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论