ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:205.67KB ,
资源ID:8085900      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8085900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于s2sh框架的博客系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于s2sh框架的博客系统.docx

1、基于s2sh框架的博客系统毕业设计(论文)题 目 基于s2sh框架的博客系统设计与开发 学 号 专 业 学 院 老 师 目录目录 I摘要 III前言 V第1章 绪论 第1节 背景 第2节 研究的目的与意义 第2章 设计简介及设计方案 第1节 设计原则 第2节 运行架构 第3节 设计方案 第3章 相关技术介绍 第1节 MVC简介 第2节 Spring 的起源和背景 第3节 Hibernate 概述 第4章 需求分析 第1节 注册博友 第2节 普通用户 第5章 系统架构设计 第1节 系统架构说明: 第2节 hibernate层 第3节 实现service层 第4节 MVC 层实现 设计结果及对设计

2、结果的分析 全文总结 致谢 摘要越来越多的网络用户希望能够在网络平台上更多地展现自己的个性,更方便地与他人互动交流,拥有一个自己独立的空间,随着Web2.0时代的到来,一个新的概念出现了博客。首先介绍了博客网站设计的意义和背景,主流博客网站的主要功能。重点介绍了基于J2EE架构的博客网站设计方案,实现的主要功能。其次,重点讲述了博客网站的业务逻辑层和持久层的设计与开发过程中所涉及的技术及开源框架。系统如何以Spring 框架为核心,向下整合Hibernate进行持久层访问,向上整合Struts 按清晰的MVC 模式控制,怎样划分应用的层次。简述了页面的请求的分发及流程。最后对BLOG网站开发中

3、所碰到的一些问题,并针对这些问题提出一些解决方案,最后对系统性能作出一些简要评估,阐述了一些个人想法。 前言本文介绍了基于轻量级J2EE开发博客网站。同时利用Spring、Struts、Hibernate、Ajax等框架整合开发。本文主要分为七章。第一章主要介绍了进行博客网站的背景及意义。第二章对博客网站设计方案做了简要介绍。第三章介绍了博客网站的需求分析。第四章详细介绍了系统的架构设计,并详细讲述了通过Spring 框架,向下整合Hibernate 进行持久层访问,利用DAO模式隔离业务逻辑层与具体持久层,向上整合Struts按清晰的MVC模式构建系统。第五章简单讲述了系统设计时遇到的问题及

4、解决方案,另外对系统的性能作了一个简要的评论及设计结果和设计结果分析。第六章对全文所使用的方法、结果以及目的和意义做了全面的总结,展望java技术在Web上的一些应用。 第1章 绪论第1节 背景商业网站设计的主要目的一般是通过网站的推广,实现更多网络用户的关注,从而吸引更多的企业用户投入更多的宣传经费到网站上。长期的战略目标,商业网站不仅是公共产品信息和服务的推广,它还是将买家与卖家、厂商和合作伙伴紧密结合的平台,借助这些商业网站可以消除企业与客户之间时间与空间带来的障碍。Blog博客网站致力于为广大博客提供优质博客页面服务的商业网站。每个博客都希望借助自己的博客页面宣传自己,而博客数量越多,

5、网站的点击率越高就越能够吸引广大的企业客户选择该商业网站作为媒介,将自己的产品展现给客户。可以说,对这些博客网站而言:为博客提供良好的服务就意味着为网站带来更多的商业客户。因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能。1. 博客的注册、登录功能2. 网络用户通过关键字搜索博文功能3. 最热门博客页面推荐浏览4. 文章详细内容及相关评论显示5. 博客页面访问量统计6. 博客个人文章管理维护功能7. 博客个人文章分类管理维护功能8. 博客个人友情链接维护功能9. 博客个人基本信息管理维护功能10. 博客图片上传及个人相册管理11. 匿名用户写留言,博主查看留言。第2节 研

6、究的目的与意义 Blog记载了日常发生的事情和自己的兴趣爱好,把自己的思想和知识和他人分享、交流,同时又通过“六度空间”结识了更多志趣相投的朋友;而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog 目前越来越多的人获取信息的来源是一些固定的 Blog 。随着博客人数的增加, Blog 作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一的思想和群体的智慧结合变

7、的更加有效,个人出版变成人人都可以实现的梦想 Blog 正在影响和改变着我们的生活。第2章 设计简介及设计方案在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。第1节 设计原则在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。blog对系统的可靠性、稳定性有比较高的要求。本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI及J2EE等模式。相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。由于J2EE的开源的

8、框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。第2节 运行框架为了增加系统的吞吐量,提高并发处理客户请求数量,系统采用了IBM服务器作为主机。在数据库处理方面,不需要在数据层借助存储过程及数据库服务器端函数封装过多的业务逻辑,因此数据库系统采用相对精巧的MySQL6。该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下:1. 服务器端操作系统:Windows 7操作系统;2. 数据库:MySQL 7.0.0版本以上;3. W

9、eb服务器:Tomcat 6.0及以上版本,配合MVC设计模式及 Hibernate开发架构;4. 客户端运行环境:能运行IE 6以上浏览器的操作系统;5. 客户端运行工具:目前的系统采用浏览器作为客户端。第3节 设计方案为了在更短的时间内实现博客网站,我们采用J2EE架构。集成开发环境我采用对于插件即插即用的MyEclipse,JSP运行环境我们采用Tomcat应用服务器,数据库管理系统我们采用的是MYSQL,博客网站主要实现注册用户可以在服务器上开辟自己的空间,也可以发布消息,添加留言. 本系统采用的是经典的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则

10、、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。并利用Spring、Hibernate、Spring等轻量级框架实现三层结构的设计。即采用的是贫血模式,业务逻辑对象正面封装了全部的业务逻辑方法, Web 层仅与业务逻辑组件交互即可,无须访问底层的DAO 对象。Spring 的声明式事务管理将负责业务逻辑对象方法的事务性。在贫血模式下,其分层非常清晰。Domain Object 并不具备领域对象的业务逻辑功能,仅仅是ORM 框架持久化所需的POJO ,仅是数据载体。贫血模型容易理解,开发便捷,但严重背离了面向对象的设计思

11、想,所有的Domain Object 并不是完整的Java 对象。第3章 相关技术介绍第1节 MVC简介MVC 是Model 、View 、Controller 三个词的缩写,三个词分别代表应用的三个组成部分:模型、视图与控制器。三个部分,协同工作,从而提高应用的可扩展性及可维护性。起初, MVC 模式是针对相同的数据需要不同显示的应用而设计的,其整体的效果如图1 所示:图1 MVC结构在经典的MVC 模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图,反之亦然。具体地说,模型维护一个视图列表,这些视图为获得模型变化通知,通常采用观察者模式登记给模型。当模型发生改变时,模型向所有登记

12、过的视图发送通知:接下来,视图从对应的模型中获得信息,然后更新自己。概括起来, MVC 有如下特点。.多个视图可以对应一个模型。按MVC 设计模式,一个模型对应多个视图,可以减少代码的复制及代码的维护量,一旦模型发生改变,也易于维护。1. 模型返回的数据与显示逻辑分离。模型数据可以应用任何的显示技术,例如使用JSP 页面、Velocity 模板或者直接产生Excel 文档等。2. 应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性。3. 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户请求权限的概念。4. MVC 更符合软

13、件工程化管理的精神。不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码。第2节 Spring 的起源和背景Spring 作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。Spring 致力于J2EE 应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring 是企业应用开发的一站式选择,并贯穿表现层、业务层及持久层。然而,Spring 并不想取代那些已有的框架,而与它们无缝地整合。总结起来, Spring 有如下优点:1. 独立于各种应用服务器.2. Spring 的DI 机制降低了业务对

14、象替换的复杂性。3. Spring 并不完全依赖于Spring ,开发者可自由选用Spring 框架的部分或全部。第3节 Hibernate 概述Hibernate 是目前最流行的ORM 框架,其采用非常优雅的方式将SQL 操作完全包装成对象化的操作。目前Hibernate 在国内的开发人员相当多, Hibernate 的文档也非常丰富,这些都为学习Hiberante 铺平了道路,因而Hibernate 的学习相对简单一些。第4章 需求分析Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传为上网用户提供按博文主题搜索,查看注册用户的博文及提出相关

15、评论,并为注册用户写留言等功能的系统。下面就以两种不同的用户来分析博客网站的需求。 第1节 注册博友首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文。可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册,在个人管理页面中注册用户还可以修改自己的个人信息。博文管理,友情链接管理及博文分类管理,用例图。 博客管理页面的用例图 在博客主界面中发表博文时可以选择博文类型,这样可以更好管理自己的博文。并查看和删除网友对自己的博文的一些评论、查看和删除网友留下的一些留言,提供与其他网友交流的空间。更好交流,在信息时代人们通过个人空

16、间沟通也用来但不能在自己的博客主页面中提交评论和留言。这样在本系统中就可以为博友提供更多的个人色彩。在管理页面中添加和删除友情连接。这样博友可以在自己空间中快速定位自己关心的网站。这样还可以让网友看到自己的一些信息。友情链接及网页访问量统计显示:在博客的个人页面中还提供了推荐给普通网络用户的相关友情链接,此外,对文章的访问量也在随时进行统计。 博客主页面的用例图第2节 普通用户在博客注册页面注册成为博客的注册用户,才可以拥有自己独立的空间,进入某一博客页面查看相关文章信息时,可以随时对自己所感兴趣的文章发表评论,同时也可以查看到其他人针对该博文的评论。普通用户在阅读博文时可以在最后留下自己的一

17、些评论。普通用户进入博友的用例图如图所示:上网博友在博客主页面的用例图 普通网友可以搜索自己关心的一些数据。并且在搜索结果中提供在结果范围内再次搜索。这样就可以将范围缩小。首页向注册用户提供登陆模块,注册用户在博客网站首页跟上网网友一样可以查看博客和博文推荐。上网网友可以注册成为博客用户,拥有自己独立的空间。这一模块的用例图如图所示:博客首页的用例图第5章 系统架构设计本系统采用严格的J2 EE 应用结构,主要有如下几个分层。1. 表现层:由JSP 页面组成。2. MVC 层:使用Struts框架。3. 业务逻辑层:主要由Spring IOC 容器管理的业务逻辑组件组成。4. DAO 层:由多

18、个DAO 组件组成,实现类必须继承Spring提供的HibernateDaoSupport。5. Hibernate 持久层:由5 个model组成,并在Hibernate Session 管理下,完成数据库访问。6. 数据库服务层:使用MySQL 数据库存储持久化数据。系统结构图 黑色大方框内的MVC 控制层、Service 层及DAO 组件层的组件,都由Spring IOC 容器负责生成,并管理组件的实例。第1节 系统架构说明:本系统不仅严格按MVC 模式设计,还按J2EE分层设计,将中间层严格分成业务逻辑层、DAO 层及数据持久层等。MVC 层的控制器绝对禁止持久层访问,甚至不参与业务逻

19、辑的实现。表现层采用传统JSP 技术。 本系统采用的是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。Jsp广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate ,为了将控制层与业务逻辑层分离,又细分为以下几种。Web 层,就是MVC 模式里面的C,负责逻辑层和表现层的交互。调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC采用Struts框架。Servic

20、e 层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO 层为基础,通过对DAO 组件的正面模式包装,完成系统所要求的业务逻辑。DAO 层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。Model层,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象, 很方便地实现以面向对象方式操作数据库,该系统采用Hibernate 作为ORM 框架。Spring 的作用贯穿了整个中间层,将Web 层、Service 层、DAO 层及model 无缝整合,其数据服务层用来存放数据。第2节 Hibernate层通过使用Hibernate 持久层,可以避免使用传统的JDBC 操作

21、数据库,对JDBC近一步包装,从而更好地使用面向对象的方式来操作数据库。保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、设计及编程,透过Hibernte 对Model对象持久化操作,不管插入还是查询都是通过Model。5.2.1 设计持久化对象(Model)面向对象分析,是指根据系统需求提取应用中的对象,将这些对象抽象成类,再抽取出需要持久化保存的类,这些需要持久化保存的类就是持久化对象(Model) 。Article.java(文章)、BlogInfo.java(博客信息)、Category.java(文章分类)、User.java(用户信息)、Critique.java(评论信

22、息)。5.2.2 实现DAO 层在Hibernate 持久层之上,可使用DAO 组件再次封装数据库操作。通过DAO 层,可以让业务逻辑层与具体持久层技术分离,一旦需要更换持久层技术时,业务逻辑层组件不需要任何改变。因此,使用DAO 组件,即意味着引入DAO 模式,使每个DAO 组件包含了数据库的访问逻辑:每个DAO 组件可对一个数据库表完成基本的CRUD 等操作。DAO 模式的实现至少需要如下三个部分。1. DAO 工厂类。2. DAO 接口。3. DAO 接口的实现类。DAO 模式是一种更符合软件工程的开发方式,使用DAO 模式有如下理由。1) DAO 模式抽象出数据访问方式,业务逻辑组件无

23、须理会底层的数据库 访问,而只专注于业务逻辑的实现。2) DAO 将数据访问集中在独立的一层,所有的数据访问都由DAO 对象完成,这层独立的DAO 分离了数据访问的实现与其他业务逻辑,使得系统更具可维护性。3) DAO 还有助于提升系统的可移植性。独立的DAO 层使得系统能在不同的数据库之间轻易切换,底层的数据库实现对于业务逻辑组件是透明的。数据库移植时仅仅影响DAO 层,不同数据库的切换不会影响业务逻辑组件,因此提高了系统的可复用性。对于不同的持久层技术, Spring 的DAO 提供一个DAO 模板,将通用的操作放在模板里完成,而对于特定的操作,则通过回调接口完成。Spring 为Hibe

24、rnate 提供的DAO 支持类是: HibernateDaoSupport,5.2.3 DAO组件的定义DAO 组件提供了各持久化对象的基本的CRUD 操作。而在DAO 接口里则对DAO组件包含的各种CRUD 方法提供了声明,但有一些IDE 工具也可以生成基本的CRUD方法。使用DAO 接口的原因是:避免业务逻辑组件与特定的DAO组件藕合。由于DAO 组件中的方法不是开始就设计出来的,其中的很多方法可能会随着业务逻辑的需求而增加,但以下几个方法是通用的。 get: 根据主键加载持久化实例。 saveor update: 保存或更新持久化实例。 remove: 删除持久化实例。5.2.4 实现

25、DAO组件 借助于Spring的DAO支持,可以很方便地实现DAO类。Spring 为Hibernate 的整合提供了很好的支持, Spring 的DAO 支持类是:HiberanteDaoSupport ,该类只需要传入一个SessionFactory 引用,即可得到一个HibernateTemplate 实例,该实例功能非常强大,数据库的大部分操作也很容易实现。所有的DAO 类都继承HibernateDaoSupport,并实现相应的DAO 接口。而业务逻辑对象则面向接口编程,无须关心DAO 的实现细节。通过这种方式,可以让应用在不同的持久化技术之间切换。并借助于Spring 提供的两个工

26、具类: HibernateDaoSupport和HibernateTemplate,可以很容易地实现DAO 组件。这种简单的实现较之传统的JDBC 持久化访问,简直不可同日而语。比如我现在要得到所有Blog对象我只需一句 return getHibernateTemplate() .find(from Blog);则返回一个Blog对象的列表。5.2.5 部署DAO 层HibernateDaoSupport类只需要一个SessionFactory 属性,即可完成数据库访问。SessionFactroy创建Session,而数据库的CRUD操作都是有Session 完成,并将查询结果保存在一级缓

27、存中,每次用户提交一次会话,可能需要Session完成一些数据库的操作而实际的数据库访问由模板类HibernateTemplate完成,该模板类提供了大量便捷的方法,简化了数据库的访问。5.2.5.1 DAO 组件运行的基础应用的DAO 组件以Hibernate和Spring 为基础,由Spring 容器负责生成并管理DAO组件。Spring容器负责为DAO 组件注入其运行所需要的基础SessionFactory。Spring为整合Hibernate 提供了大量工具类,通过LocalSessionFactoryBean 类,可以将Hibernate 的SessionFactory 纳入其IoC

28、 容器内。使用LocalSessionFactoryBean 配置SessionFactory之前,必须为其提供对应的数据源,配置代码如下:在datasource中配置它的数据库驱动driverClass,URL,username、password 、inPoolSize、maxPoolSize 不管我们采用那种数据库我就可以在修改dataSource 的一些属性而不改动程序,将程序和数据库的耦合降到最低。5.2.5.2 配置DAD 组件在将dataSource注入到Dao中,就可以用HibernateTemplate提供的大量便捷的方法。进一步简化了持久层讨问,其模板的操作大大降低Hiber

29、nate 的重复操作;Spring 提供的DAO 支持简化了DAO 开发;SessionFactory 的依赖注入简化了Session 的控制等;这些都极大地提高J2EE应用的开发效率。声明式事务的管理分离了业务逻辑和事务逻辑,将应用从特定的事务逻辑中解料,使应用可以方便地在不同的事务策略之间切换。在所有的ORM 框架中, Sping 对Hibernate 的支持最好。Spring 提供很多IoC 特性的支持,方便地处理大部分典型的Hibernate 整合问题,如SessionFactory 注入到Dao中、HibernateTemplate 的简化操作及DAO 支持等,然后在Dao实现类继承

30、HibernateDaoSupport,这样的话,Dao实现类就可以通过HibernateTemplment以面向对象的方式操作数据库。另外, Spring 还提供了统一的异常体系及声明式事务管理等。一旦Hibernate 处于Spring 的管理下, Hibernate 所需要的基础资源,都由Spring 提供注入。Hibernate创建SessionFactory 必需的DataSource ,执行持久化必需的Session 及持久层访问必需的事务控制等,这些原本必须通过代码控制的逻辑,都将由Spring 接管:DataSource, SessionFactory, Transaction

31、Manager 等,都将作为Spring 容器中的bean。将这些bean 放在配置文件中管理,可以提供很好的解耦。Spring 提供了DAO 支持,可以大大简化DAO 组件的开发。IOC 容器的使用,提供了DAO 组件与业务逻辑组件之间的松耦合。所有的DAO实现Bean 组件,都由容器负责注入到业务逻辑组件中,其业务组件无须关心DAO 组件的实现。面向接口编程及DAO 模式的使用,提高了系统组件之间的解耦,降低了系统重构的成本。通过Spring 整合Hibernate ,使持久层的访问更加容易,使用Spring 管理Hibernate持久层有如下优势。1. 有效的Session管理: Spring提供了有效、简单和安全的Hibernate Session处理。2. IoC 容器提高了DAO 组件与业务逻辑层之间的解耦。3. DAO 模式的使用,降低了系统重构的代价。4. 方便的事务管理: Hibernate 的事务管理处理会限制Hibernate 的表现,而5. Spring的声明式事务管理力度是方法级。6. 通用的资源管理: Spring 的ApplicationContext 能管理SessionFactory ,使得配置值很容易被管理和修改,无须使用Hibernate 的配置文件。第3节 实现Service

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1