毕业论文_博客网站的设计与实现_第1页
毕业论文_博客网站的设计与实现_第2页
毕业论文_博客网站的设计与实现_第3页
毕业论文_博客网站的设计与实现_第4页
毕业论文_博客网站的设计与实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、博客网站的设计与实现博客网站的设计与实现DESIGN AND IMPLEMENTATION OF BLOG SITES 专专 业:业: 计计算算机机科科学学与与技技术术(信信息息处处理理) 姓姓 名:名: 指指 导导 教教 师:师: 申请学位级别:申请学位级别: 学学 士士 论文提交日期:论文提交日期: 20112011 年年 6 6 月月 6 6 日日 学位授予单位:学位授予单位: 天天津津科科技技大大学学I摘 要本文阐述了博客系统应具备的功能,首先简单介绍了什么是博客,博客的一些基本特点,以及博客的几个发展阶段,然后在初步了解博客的基础上,进一步编写了需求分析文档,划分了系统需要实现的功能

2、,完成了数据库的逻辑设计,并且创建了后台数据库。本文探讨了 JSP、SSH、数据库设计、以及系统开发方法等多项技术。通过引入 MVC 三层体系的开发模式,结合 JSP 的具体开发,将本系统划分为用户管理模块,博客管理模块,博客访问模块,博客查询模块等四大功能模块,成功模拟实现了一个博客网站的基本业务功能。本系统以 MyEclipse8.5 和 MySQL 作为开发工具,在 Tomcat6.0 模拟服务器的支持下,叙述了使用 JSP+SSH 技术开发一个 Web 应用程序的过程。关键词关键词:博客; Jsp; MySQL; SSHIIABSTRACTIn this paper, we shows

3、 the function of blog system should have.First part is a brief introduction of what blog is, some of the basic features of blog and the several stages development of blog, then, after we basically know about the blog, we can write about the needs of analysis document. The function of the system need

4、s to be divided in to several parts. After finish the logical databases design, we can create a background database.This article discusses several technologies, like JSP, SSH, the design of the database and methods of developing the system. Though introducing the MVC three-tier pattern which combine

5、d with the specific JSP, this system is divided into three functional modules, including the user management module, blog management module, search blog module and access blog module. Then we can successfully simulate a blog site to achieve the basic business functions.This system use MyEclipse8.5 a

6、nd MySQL as development tools, with the support of Tomcat6.0 web server, it describes the process of using JSP and SSH technology to develop a Web application.Key words:Blog; JSP; SSH; MySQLI目目 录录第一章 绪 论.1第一节 课题背景及研究目地和意义.1第二节 博客的相关技术.3第三节 主要研究内容和论文框架结构.4第二章 博客系统设计的相关技术.5第一节 开发环境和系统结构.5第二节 MVC 开发模式.

7、9第三节 选择上述平台的技术原因.11第三章 博客系统的分析和设计.12第一节 系统功能描述.12第二节 系统功能设计.13第三节 博客系统的各模块设计.14第四节 博客系统的数据库设计.17第五节 系统内部接口设计.21第四章 博客系统各模块的实现.23第一节 系统页面组织.23II第二节 数据库访问操作.30第三节 博客主页的展示与管理的实现.32第五章 总结与展望.40参考文献.43致谢.43天津科技大学 2011 届本科生毕业设计1第一章 绪论第一节 课题背景及研究目地和意义一、 课题背景进入 21 世纪以来,计算机与人类之间的距离逐渐缩小,几乎在人类出现的地方都可以接触到计算机。由于

8、计算机的高速发展,带领人类进入了另一个世界即计算机网络。计算机网络上一个由众多位于不同地方的计算机组成的集合,它的出现改变了人类的生活,让人类进入了多姿多彩的网络世界。随着计算机网络的发展,在人与人之间出现了各种各样的交流方式,从早期的 ICQ,到后来的 E-mail 和 BBS,都是在计算机网络的基础上诞生的,它们的出现让人类的交流变得更加方便和快捷。博客是网络上的新名词,它是一种新生的网络交流方式,是从 BBS 发展而来,是一个轻量级的网络软件。自从博客诞生以来,它拥有众多的支持者,不仅仅因为它是潮流的象征,而更多的是能够方便地表达个人的情感内容,以致于更好地实现了人与人之间的交流。二、

9、系统研究的意义既然博客是计算机网络上的新事物,那无可厚非她肯定是属于 B/S 结构的Web 应用程序,相对于 C/S 结构的计算机应用程序,Web 应用程序具有更多的优点,它可以实现一处修改多出的效果,在更新速度上来讲,这是 C/S 结构应用程序无可比拟的功能。B/S 结构是随着计算机网络而诞生的,是一种很深的依赖关系,没有了计算机网络,B/S 结构的 Web 应用程序就变得没有价值了。为了适应计算机网络的发展,为了研究 B/S 结构应用程序的特点,同时为了了解和认识博客,在此选择了博客的开发作为论文的研究方向。通过选择开发一个 B/S 结构的 Web 应用程序,使用学习到的技术和工具,完成一

10、件具有实际意义的研究工作,同时更多的是为了巩固专业知识。博客作为一种新的交流方式、新的学习方式、新的工作方式出现在人们的生活中,让人们的交流与沟通有了更多的明确性和方向性,让单一的思想发展为群体的智慧,让我们可以通过 Blog 影响和改变自己的生活的同时,也在改变着影响和变着别人的生活。三、 博客的发展追溯博客的源头,是一件很难的事,有人认为 1994 年 Justin Hall 声名狼藉的“网上日记”可以算早期的博客形式。在这个事件悄悄演变的过程中,也有天津科技大学 2011 届本科生毕业设计2别的一些事件和人物起到了非常关键的启蒙和带头作用,为博客革命准备好了条件。到 2000 年,博客开

11、始成千上万涌现,并成为一个热门概念。在博客发展史上,911 事件是一个重要的时刻。正是这场恐怖的袭击,使人们对于生命的脆弱、人与人沟通的重要、最即时最有效的信息传递方式,有了全新的认识。一个重要的博客门类:战争博客(WarBlog)因此繁荣起来,可以说对 911 事件最真实最生动的描述不在纽约时报,而在那些幸存者的博客日志中;对事情最深刻的反思与讨论,也不是出自哪一个著名记者手中,而是在诸多的普通博客当中。 据不完全统计,到今天,全世界自觉实践的博客数量,已经达到 50 万到100 万之众。虽然与 3 亿以上的网民相比,还显得微不足道。但是这些博客的影响力,却早已超出了他作为个人、甚至作为自己

12、所在行业的原有范围。开始引起主流的媒体的强烈关注,并明显感受到博客崛起对传统媒体的冲击。同时,各个专业领域的博客如“雨后春笋”,纷纷浮出水面,越来越成为该专业关注的焦点。除了美国,英国、匈牙利、德国等欧洲国家的博客也形成声势。亚洲,包括中国也开始感受到博客的脉动。估计,在最近一两年内,博客将成为互联网萧条时期最重要的新现象之一,为全社会所关注。到 2006 年左右,作为一种新的媒体现象,博客的影响力有可能超越传统媒体;作为专业领域的知识传播模式,博客将成为该领域最具影响力的人物之一; 作为一种社会交流工具,博客将超越 E-mail、BBS、ICQ(IM),成为人们之间更重要的沟通和交流方式。

13、显然,以上主要是对全球(美国为中心)博客发展阶段的简单划分。在中国,与所有的网络革命一样,继续保持着一定的“滞后度”。在博客方面也不例外,中国的发展阶段基本上差了一个阶段。也就是说,现在中国的博客发展仅仅进入启蒙期,萌芽期,可能需要 23 年,才能进入真正的初级阶段,也就是崛起期。目前网上有各种各样的博客系统,比较出名如新浪博客,网易博客等,通过这些博客平台,增加了人们在网络上的交流,使得人们的生活变得更加得丰富多彩。随着越来越多专业知识的 Blog 的出现,如专介绍 IT 相关知识的月光博客,让我们看到了 Blog 所存在的巨大的信息价值。不同的 Blog 选择内容的出现,使得收集和整理成为

14、很多人关注的专业 Blog。天津科技大学 2011 届本科生毕业设计3四、 博客的概念及特点“博客”(Blog 或 Weblog)一词源于“WebLog(网络日志)”的缩写,是一种十分简易的傻瓜化个人信息发布方式。让任何人都可以像免费电子邮件的注册、写作和发送一样,完成个人网页的创建、发布和更新。博客是继 Email,BBS,ICQ 之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,你可以精选并链接全球互联网中最有价值的信息、知识与资源;也可以将你个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥您个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交流沟通。B

15、log 并不是纯粹的技术创新,而是一种逐渐演变的网络应用。博客是一种满足“五零”(零条件、零技术、零体制、零成本、零形式)条件而实现的“零进入壁垒”的网上个人出版方式,从媒体价值链最重要的三个环节:作者,内容和读者三大层次,实现了内容的开放,使得未来媒体世界完成了从大教堂模式到集市模式的根本转变。博客并不完全等同于网络日记,两者的侧重点不同。日记个人性,私密性比较强,博客则是个人性和公共性的集合体,其精髓不是表达个人思想和记录个人日常经历,而是以个人的视角,以整个互联网为视野,精选和记录自己在网上看到的精彩内容,为他人提供帮助,使其具有更高的共享价值。五、 B/S 结构与博客的结合作为一个 B

16、/S 机构的 Web 应用程序,首先应该具备的就是博客页面跳转的准确性,请求资源的正确性;其次必须包含整齐,清晰,并且容易使用的网络页面;第三,后台数据库必须设计好,不应该包含任何业务逻辑;最后,系统中模拟实现的业务功能必须正确无误,并且对无效数据有较强的容错及处理能力。通过实现上述几个基本要点,成功开发一个 Web 应用程序。第二节 博客的相关技术本博客系统使用了 J2EE 的开发模式,整个系统分为表现层、控制层、DAO 层和数据持久层,以 JSP、Struts 作为表现层和控制层的主要实现技术、以 Spring 作为 DAO 层的主要实现技术,以 hibernate 作为数据持久层的实现技

17、术。Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完天津科技大学 2011 届本科生毕业设计4成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。 Struts9实际就是实现了 MVC 的机制,切实可行的把控制和显示分开,从管理上来说可以节省不必要的时间和人力的浪费。提高了开发速度。也真正的实现了 bean 的重用。除此之外,Struts 的优点主要集中体现在两个方

18、面:Taglib和页面导航。Taglib 是 Struts 的标记库,灵活动用,能大大提高开发效率。Struts 的自定义标记还提供了很多定制页面的功能 ,在使用 Struts 的同时需要编辑两个配置文件: web.xml 和 struts-config.xml。通过它们配置 Struts系统中的各个模块之间的交互。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servl

19、et/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。具体 SSH 技术的模块原理如图 1-1 所示。表示层ServiceActionServletStruts-mvcJSP,XML 等Structs Action业务逻辑层Business Service ClassSpring LocHerbinate会话管理数据持久层连接池 tHibernate查询其它语言支持Dao域模块层 Domain Model Business Objects图 1-1 SSH 技术模块原理第三节 主要研究内容和论文框

20、架结构本人在博客系统的建设中,主要参与了系统的需求分析,系统概要设计,系统详细设计,以及各模块的编码和测试工作。本论文主要内容如下:1主要阐述课题的研究背景和意义,综述国内相关领域的研究概况和存在的问题,并提出主要研究内容。天津科技大学 2011 届本科生毕业设计52研究了博客网站建设的相关理论,包括博客系统以及系统开发相关技术的选择,如 JSP,SSH 技术,MVC 架构等,并提出相关技术选择的必要性。3详细说明博客系统的总体功能以及其核心模块的数据库设计的过程,通过需求分析、逻辑结构设计、数据库物理设计等步骤。4对于博客系统各模块功能及各功能子模块的技术实现过程做详细介绍。5对全文进行汇总

21、,并提出后续工作展望。天津科技大学 2011 届本科生毕业设计6第二章 博客系统设计的相关技术第一节 开发环境和系统结构博客系统建设的目的是做成一个网页形式存在的博客,主要功能是前台浏览器页面跟后台服务器的交互,通过若干处理,完成用户的请求任务。本博客系统是基于 B/S 模式的网络管理平台,具有易于开发、便于维护的特点,无需安装客户端,节省开发周期,方便维护管理。一、 本系统的结构和所采用的集成开发环境本系统采用严格的 J2EE 应用结构,主要有如下几个分层。1表现层:由 JSP 页面组成。2MVC 层:使用 Struts 框架。3业务逻辑层:主要由 Spring LOC 业务管理逻辑组件组成

22、。4DAO 层:由 7 个 DAO 组件组成,实现类必须继承 Spring 提供的HibernateDaoSupport。5Hibernate 持久层:由 7 个 POJO 组成,并在 Hibernate Session 管理下,完成数据库访问。6数据库服务层:使用 MySQL 数据库存储持久化数据。整个系统的具体框架模型如图 2-1 所示。用户界面负责业务数据的收集和表示客户端校验视图层(JSP)MVC 架构的控制层控制业务逻辑层与表现层的交互Web 层(Structs)业务逻辑的实现层业务逻辑层数据访问对象与持久化对象交互通过实体关系映射 O-R Mapping由数据库得来的对象DAOHi

23、bernate持久层存放数据数据库MySQL图 2-1 框架模型图天津科技大学 2011 届本科生毕业设计7 在图 2-1 的 MVC 控制层、Service 层及 DAO 组件层的组件,都由 Spring IOC 容器负责生成,并管理组件的实例(实例必须是单身模式的,本系统中的bean 基本上是单身的) 。本系统采用的 MyEclipse8.5 的集成开发环境,MyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称 MyEclipse)是对 Eclipse IDE 的扩展,利用它我们可以在数据库和 J2EE 的开发、发布,以及应用程序服务器的

24、整合方面极大的提高工作效率。它是功能丰富的 J2EE 集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持 HTML、Struts、 JSP、 CSS、 javascript、SQL、Hibernate。二、 Web 应用服务器本系统采用的 Web 应用服务器 Tomcat6.0,Tomcat 是一个免费的开源Serlvet 容器,在 Tomcat 中,应用程序的部署很简单,你只需将你的 WAR 放到Tomcat 的 webapp 目录下,Tomcat 会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的 Jsp 时,通常第一次会很慢,因为 Tomcat 要将 Jsp 转化为

25、 Servlet 文件,然后编译。编译以后,访问将会很快。Tomcat17也具有传统的 Web 服务器的功能:处理 Html 页面。但是与Apache 相比,它的处理静态 Html 的能力就不如 Apache。我们可以将 Tomcat和 Apache 集成到一块,让 Apache 处理静态 Html,而 Tomcat 处理 Jsp 和Servlet。Tomcat 是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。三、 JSP 概述JSP(Java Server Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术

26、标准。JSP 技术有点类似 ASP 技术,它是在传统的 HTML 网页文件(*.htm,*.html)中插入 Java 程序段(Scriptlet)和 JSP 标记(tag) ,从而形成 JSP 文件(*.jsp) 。 用 JSP 开发的 Web 应用是跨平台的,既能在 Linux 下运行,也能在其他操作系统上运行。(一) JSP 特点1将内容的生成和显示进行分离使用 JSP 技术 Web 页面开发人员可以使用 HTML 或者 XML 标识来设计和格式化最终页面。使用 JSP 标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识 JavaBeans 组件中,并且捆绑在小脚本中,所有

27、的脚本在服务器端运行。如果核心逻辑被封装在标识和 Beans 中,那么其他人,如 Web 管理人员和页面设计者,能够编辑和使用JSP 页面而不影响内容的生成。这有助于作者保护自己的代码,而又保证任何天津科技大学 2011 届本科生毕业设计8基于 HTML 的 Web 浏览 器的完全可用性。 2强调可重用的组件绝大多数 JSP 页面依赖于可重用的,跨平台的组件(JavaBeans 或者EnterpriseJavaBea nsTM 组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操 作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过

28、程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3采用标识简化页面开发Web 页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page 技术封装了许多功能,这些功能是在易用的、与 JSP 相关的 XML 标识中进行动态内容生成所需要的。标准的 JSP 标识能够访问和实例化 JavaBeans 组件,设置或者检索组件属性,下载 Applet,以及执行用 其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP 技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。(二) JSP 工作原理在一个 JSP 文件第一次被请求时,JSP

29、 引擎把该 JSP 文件转换成为一个servlet。而这个引擎本身也是一个 servlet,在 JSWDK 或 WEBLOGIC 中,它就是 JspServlet。 JSP 引擎先把该 JSP 文件转换成一个 Java 源文件,在转换时如果发现 jsp 文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功, JSP 引擎用 javac 把该 Java 源文件编译成相应的class 文件。然后创建一个该 SERVLET 的实例,该 SERVLET 的 jspInit()方法被执行,jspInit()方法在 servlet 的生命周期中只被执行一次。jspService

30、()方法被调用来处理客户端的请求。对每一个请求,JSP 引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该 JSP 文件,则 JSP 引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该 servlet 始终驻于内存,所以响应是非常快的。如果.jsp 文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的 servlet,并继续上述处理过程。虽然 JSP 效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。四、 MySQL4概述

31、MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS) ,MySQL天津科技大学 2011 届本科生毕业设计9数据库系统使用最常用的数据库管理语言-结构化查询语言(SQL)进行数据库管理。 由于 MySQL 是开放源代码的,因此任何人都可以在 General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL 因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 MySQL 是一个多用户、多线程的 SQL 数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序 mysqld 和很多不同

32、的客户程序和库组成。MySQL 是目前运行速度最快的数据库服务器之一,而且 MySQL 对于商业和个人用户是免费的,MySQL 的功能特点如下:可以同时处理几乎不限数量的用户;处理多达 50,000,000 以上的记录;命令执行速度快;简单有效的用户特权系统。MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。五、 XML 概述XML 代表 Extensible Markup Language(eXtensible Markup Language 的缩写,意为可扩展的标记语言) 。与 HTML 相似,XML 是一种显示数据的标记语言,它能使数据通过网络无障碍

33、地进行传输,并显示在用户的浏览器上。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。关于 XML 要理解的第一件事是,它不只是像超文本标记语言 HTML 或是格式化的程序。这些语言定义了一套固定的标记,用来描述一定数目的元素。如果标记语言中没有所需的标记,用户也就没有办法了。这时只好等待标记语言的下一个版本,希望在新版本中能够包括所需的标记,但是这样一来就得依赖于软件开发商的选择了。XML 是一种元标记语言,用户可以定义自己需要的标记。这些标记必须根据某些通用的原理来创建

34、,但是在标记的意义上,也具有相当的灵活性。六、 B/S 模式分析B/S 结构(Browser/Server,浏览器/服务器模式)是 WEB 兴起后的一种网络结构模式,WEB 浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。伴随着 Internet 的迅速发展,计算机技术正在由基于 C/S(client/ Server)模式的应用系统转变为基于 B/S 模式的应用系统。天津科技大学 2011 届本科生毕业设计10过去,网络软件的开发都采用 C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,

35、必然导致以下问题:系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。客户机上只要安装一个浏览器(Browser) ,如 Internet Explorer,服务器安装 Oracle 或 SQL Server 等数据库。浏览器通过 Internet 同数据库服务器进行数据交互。B/S 最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。由于 B/S 架构管理软件只安装在服务器端(Server)上,管理人员只需要管理服务器

36、即可,用户界面主要事务逻辑在服务器(Server)端完全通过 WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,管理人员只需要做服务器端的维护。B/S 架构方式如图 2-2 所示。图 2-2 B/S 架构方式第二节 MVC 开发模式由于本博客系统采用了 Struts,其为 MVC 的完美诠释,并且符合设计和开发要求,所以本小节将对 MVC 模式进行简单介绍,并从 MVC 的概念、特点等两个方面进行说明。一、 MVC 模式的概念MVC 是三个单词的缩写,分别为 Model(模型) , View (视图)和Controller(控制) 。MVC 模式的目的就是

37、实现 Web 系统的职能分工。Model 层实现系统中的业务逻辑,通常可以用 JavaBean 或 EJB 来实现。View 层用于与天津科技大学 2011 届本科生毕业设计11用户的交互,通常用 JSP 来实现。 Controller 层是 Model 与 View 之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作,可以用 Struts 来实现。二、 MVC 模式的特点1低耦合性视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动 MVC的模型

38、层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。2高重用性和可适用性随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何 WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用 HTML 来表示,但是也有可能用 WAP 来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任

39、何改变。3较低的生命周期成本 MVC 使降低开发和维护用户接口的技术含量成为可能。4.可快速部署,有利于软件工程化管理 使用 MVC 模式使开发时间得到相当大的缩减,它使程序员(Java 开发人员)集中精力于业务逻辑,界面程序员(HTML 和 JSP 开发人员)集中精力于表现形式上。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。5可维护性分离视图层和业务逻辑层也使得 WEB 应用更易于维护和修改。6MVC 的缺点MVC 的缺点是由于它没有明确的定义,所以完全理解 MVC 并不是很容易。使用 MVC 需要精心的计划,由于它的内部原理比较复杂,所以

40、需要花费一些时间去思考。 根据开发者经验,由于开发者将一个应用程序分成了三个部件,所以使用MVC 同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。 天津科技大学 2011 届本科生毕业设计12MVC 并不适合小型甚至中等规模的应用程序,花费大量时间将 MVC 应用到规模并不是很大的应用程序通常会得不偿失。 MVC 设计模式是一个很好创建软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件,你可能需要重新思考你的应用程序,尤其是应用程序的构架方面。如果你

41、肯接受 MVC,并且有能力应付它所带来的额外的工作和复杂性,MVC 将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。第三节 选择上述平台的技术原因系统选用 JSP + MySQL+SSH 来开发,采用 MyEclipse 下的集成开发环境,并运行在 windows 7 操作系统下的 tomcat 容器中。这样选择是由于以下几种原因:1JSP 在 MyEclipse 里面环境配置相当简单,仅仅要求开发者具备熟练的java技术。2MySQL 数据库使用起来比较方便,导入导出数据库简单快捷。3JSP +MySQL 的性能足够满足本系统使用的需要。4Tomcat 的使用能够满足系统要求的同时

42、也便于管理。5SSH 的合理搭配。具体搭配如下:表现层:由 Jsp 和 struts 扩展标签库实现,主要用于用户交互和处理结果展现给用户。控制层:运用 Struts 框架的 ActionServlet 和 Action 进行控制转发,主要作用是描述应用程序中的商业流程,调用相应的 DAO 进行结果控制。Dao 层:hibernate 来连接数据库并控制相应操作。天津科技大学 2011 届本科生毕业设计13第三章 博客系统的分析和设计本章首先从系统的功能分析开始,指出系统需要实现的主要功能模块,并对各模块的功能予以说明,在此基础上对数据库进行设计,说明系统的数据库设计过程。第一节 系统功能描述

43、本系统的具体功能如下:1用户注册:任何访问者都可以注册为博客管理系统的合法用户;2用户登陆:登录的用户具有浏览日志,发表日志,发表日志评论,修改日志,删除日志,删除日志评论的功能;3浏览日志:登录后的用户可以浏览自己的网络日志和评论;4发表日志:登录后的用户可以发表自己的网络日志;5修改日志:登录后的用户可以修改自己的网络日志;6删除日志:登录后的用户可以删除自己的网络日志;7删除评论:登录后的用户可以删除针对本人的网络日志的评论;8博客浏览:任何访问者都可以浏览特定用户博客中的日志(按照博客用户的用户名浏览此用户) ;9发布评论:任何访问者都可以针对别人的网络日志发表评论。本系统的用户包括管

44、理人和游客两大类,所有的功能全部提交给这两类用户进行使用,系统功能结构模型如图 3-1 所示。用户管理人员游客系统注册登陆存入数据库检索用户查看文章、评论信息管理文章、评论的信息文章展示、评论展示发表评论图 3-1 系统功能结构模型图系统功能结构图主要从功能的角度描述了系统的结构,但并未表达各功能天津科技大学 2011 届本科生毕业设计14之间的数据传送关系,系统中许多业务或者功能都是通过数据文件关联起来的。第二节 系统功能设计系统功能的设计是一个分解到合并的过程。博客系统的功能分解是从抽象过渡到具体,从复杂过渡到简单的。分解得最小的模块可以是程序中的一个处理过程,较大的模块可以是完成某一任务

45、的一组程序。例如,在博客首页中必须登录填写用户名和密码,这样才能执行一些相关操作,不然普通用户只能查看一些信息,而不能管理博客,这就属于较小的功能模块。用户登录博客后,所拥有的一系列管理功能就属于较大的功能模块。在管理功能模块里,需要添加管理博文分类,管理博文,管理博文评论,管理资料等等的功能。具体需要实现的功能,包括用户功能设计图和游客功能设计图,分别如下图 3-2 和 3-3 所示。用户文章文章分类留言评论文章修改资料个人密码修改增删改查增删改查增、删、查增、查改改图 3-2 用户功能设计图游客文章文章分类留言评论查询查询增、查增、查图 3-3 游客功能设计图在博客主界面中发表博文时可以选

46、择博文类型,这样可以更好管理自己的天津科技大学 2011 届本科生毕业设计15博文。并查看和删除网友对博文的一些评论、查看和删除网友留下的一些留言,提供与其他网友交流的空间。更好交流,在信息时代人们通过个人空间沟通,看到别人在自己的博文上提交的评论和留言后可以与其互动,这样发布的博文才会更有意义。第三节 博客系统的各模块设计理解系统各模块的关系对于完成整个系统各个模块的设计至关重要,因为它所体现的逻辑结构是整个系统的数据结构,本博客系统的所有模块如图 3-4所示。注册登陆管理模块文章检索查询模块页面显示模块留言显示检索模块管理模块图 3-4 系统模块图在理解系统各个模块的关系的基础上,需要对系

47、统的前台和后台所提供的功能进行区分,这对于各个模块的功能的逻辑区分十分重要。前台主要是面向访问用户的,后台是系统的内部程序架构。下面是系统的前后台展示。1.前台系统如图 3-5 所示。前台系统登录注册查询博客返回博文分类所有分类最新博文最新评论图 3-5 前台系统天津科技大学 2011 届本科生毕业设计162后台系统如图 3-6 所示。后台系统查询博客会员非会员跳回主页修改资料添加博文博文管理添加分类分类管理评论管理注册图 3-6 后台系统整个系统包括以下四大模块:1. 博客注册登录管理模块博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管

48、理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。该功能模块实现了以下几个子功能。(1)新博客在线注册。(2)博客登录管理。(3)跳转到博客主页。只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理维护。该模块实现新博客的注册及登录验证功能。其中,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性,例如,用户名被占用时将及时给出提示。注册成功的博客登录时,会随时根据博客输入

49、的登录信息进行提示,如用户名错误或者密码错误。2. 博客及文章检索查询模块博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能,同时对日志的评论信息、博客推荐也能够及时反馈给网络用户。天津科技大学 2011 届本科生毕业设计17该功能模块实现了以下几个子功能。(1)热门博客页面推荐。(2)最新博客日志推荐。(3)日志信息关键字搜索。该模块能够在网页中随时提供在线的最新日志信息。该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐。在客户选择了某个博客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读,并和博客进行交流互动。为了使网络用户尽快定位

50、到所需的博客资料及日志信息,本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进行关键字搜索,以避免用户浏览多个页面来寻找所需的日志信息。3. 博客页面显示模块当网络用户进入某个人博客主页后,在该页面中将提供博客日志列表的显示,同时为了方便用户浏览,在该模块中提供根据分类名进行日志列表的显示,也提供日志评论的浏览,此外还允许用户在博客页面中发表评论及留言。该功能模块实现了如下几个子功能。(1)用户可以分页查看对应的日志内容及评论信息。(2)用户可以针对日志内容发表评论。(3)用户可以针对博客进行留言。(4)用户可以分类查看日志内容。在该模块中还提供了博客页面统计信息,日志、评论及留言信息

51、分页显示等方便用户的显示效果。4. 博客个人维护管理模块博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。该功能模块实现了如下几个子功能:(1)日志及日志分类管理。(2)评论及留言管理。(3)个人基本信息维护管理。借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理。整个系统的程序功能如图 3-7 所示。天津科技大学 2011 届本科生毕业设计18用户查看文章类别查看文章添加类别修改类别删除类别添加文章修改文章删除文章查看评论进行评论回复评论图 3-7 程序功能图模块层是整个系统

52、的底层,也是整个系统的核心所在。模块层是业务逻辑的实现层,所有跟系统有关的功能都放在这一层次上。模块层为了管理的方便,应该分为三种模块:实体模块、业务模块、DB 访问模块。实体模块是对现实世界的模拟,是一种包含属性而不包含任何方法的 JAVA 类。业务模块是系统所需要实现的业务功能的模拟,是一种包含方法而不包含属性的 JAVA 类。DB访问模块是用于实现数据持久化的一个层次,专门负责数据库的访问工作。第四节 博客系统的数据库设计数据库设计是整个系统成本的关键。数据库设计的难点在于降低访问瓶颈出现的概率。良好的数据结构也是实现好的数据库的关键。整个系统的 E-R 图如图 3-8 所示。天津科技大

53、学 2011 届本科生毕业设计19正文内容最新修改时间发表时间标题分类文章属于文章分类分类名称包含评论留言人昵称留言时间留言内容留言哪篇文章评论人昵称评论时间评论内容N11N图 3-8 系统 E-R 图数据结构设计的难点在于理清现实世界中各种实体的关系,抽象出数据模型,并且在系统中实现。下面是数据库各种基本信息的定义:1数据库表名的定义使用:字段命名是能表达字段内容的英文单词的组合。2备注里面没有写的表示可为空。3数据类型不使用固定数据库的类型,标识大众类型,如字符串、字符、数字等。这样在更改数据库时需求的数据是可移植的4输写数据表在数据库中的物理名称,可用自己熟悉的语言再定义表名称,方便沟通

54、。5长度定义又数据类型决定:如字符串可选 225 以下,数字可在 11 位之间,字符只允许一位,日期时间采用 Datetime,占用 8 字节空间,存储从 1753年 1 月 1 日9999 年 12 月 31 日的日期和时间数据。6设置表的主键,用来惟一地确定一个元组,确定在每张表的主键栏用“是”来判断,不是主键则不写。整个系统的数据库表展示如下:1用户信息表:用户信息表(user)如表 3-1 所示。表 3-1 用户信息表天津科技大学 2011 届本科生毕业设计20序号序号字段名称字段名称中文名称中文名称类型长度类型长度备注备注主键主键1userId用户序号Varchar(225)是2Us

55、ername用户名Varchar(225)Null3userPass用户密码Varchar(225)Null4pageArticelNumber文章页数Int(11)Null5PageCommentNumber评论页数Int(11)Null2文章信息表:分类信息表(category)如图 3-2 所示。表 3-1 分类信息表序号序号字段名称字段名称中文名称中文名称类型长度类型长度备注备注主键主键1categoryId分类序号Varcha(225)是2categoryName分类名称Varcha(225)Null3Level分类排序Int(11)Null4userId用户序号Varcha(225

56、)Null3分类信息表:评论信息表(comment)如图 3-3 所示。表 3-3 评论信息表序号序号字段名称字段名称中文名称中文名称类型长度类型长度备注备注主键主键1commtntId评论序号Varchar(225)是2commentPerson评论人Varchar(225)Null3commentTitle评论标题Text4commentContent评论内容Text5commentTime评论时间DatetimeNull6articleId文章序号Varchar(225)Null4评论信息表:文章信息表(article)如表 3-4 所示。天津科技大学 2011 届本科生毕业设计21表

57、3-4 文章信息表序号序号字段名称字段名称中文名称中文名称类型长度类型长度备注备注主键主键1articleID文章序号Varchar(225)是2articleTitle文章标题Text3articleContent文章内容Text4publishTime发布时间DatetimeNull5userId用户序号Varchar(225)Null6categoryId分类序号Varchar(225)Null三张表之间的关系如图 3-9 所示。图 3-9 数据库表之间的关系由于开发时是利用 MVC 的设计模式,所以在此我们的数据库连接是封存在 M 中的,即只要我们和 M 层连接上,就已经连接上数据库了

58、。Hibernate 使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象) 。我们只需在 hibernate.cfg.xml 中配置以下语句即可:天津科技大学 2011 届本科生毕业设计22org.hibernate.dialect.MySQLDialectjdbc:mysql:/localhost:3306/blog /连接数据库blogblogcom.mysql.jdbc.DriverMySqltrue /用户配置 /分类配置 /文章配置 /评论配置第五节 系统内部接口设计数据库操作接口,是一个封装的外部接口,包括三个基本的数据库操作:添加、删除、修改。在 JAVA 语言中,拥

59、有 JAVA 的应用程序接口,即 Java API,其中提供有数据库访问操作。由于这个类中的方法都只识别 SQL 语句,不认识添加、删除、修改和查询操作,因此,有必要对着四种操作进行区分,数据库操作接口就是完成这项任务的。作为一个接口,它只包括三种基本操作:添加、删除和修改,而查询操作则分离出来,作特殊处理。开发人员在更新数据库时,只需要提供一个业务实体对象,便可以进行数据库访问操作。数据库接口的 UML 如图 3-10 所示。天津科技大学 2011 届本科生毕业设计23实实体体层层D DB B访访问问层层数数据据库库操操作作接接口口添加记录 : 数据库操作接口删除记录 : 数据库操作接口修改

60、记录 : 数据库操作接口数数据据库库图 3-10 数据库接口的 UML 图天津科技大学 2011 届本科生毕业设计24第四章 博客系统各模块的实现第一节 系统页面组织由于系统中包括游客和管理人等两类用户,而每一类用户的操作权限都各不相同,因此其显示页面也不同。为了便于系统开发和维护,在页面的组织与管理中,按照用户的类别建立了不同的文件夹,将不同用户的操作页面归入相应的文件夹中,这样不仅便于页面管理和维护,而且可以避免在页面中对用户权限进行判断的操作,如果将系统页面设计为通用页面,虽然可以减少页面的数量,但在设计程序的时候需要对用户权限进行判断,降低了程序执行的速度,而如果将页面按照用户类别划分

温馨提示

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

最新文档

评论

0/150

提交评论