样本计算机毕业设计论文Word文档格式.docx
- 文档编号:21296845
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:55
- 大小:1.98MB
样本计算机毕业设计论文Word文档格式.docx
《样本计算机毕业设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《样本计算机毕业设计论文Word文档格式.docx(55页珍藏版)》请在冰豆网上搜索。
1.2研究的基本内容
1.2.1研究的基本内容
本课题的研究基本内容为基于SSH2框架开发设计一个可多人同时在线编制电子书的平台,系统根据角色划分权限,不同的用户登录后可以进行不同的操作。
系统的角色目前分为三种,读者,作者和管理员。
1)读者可以进行个人管理、阅读电子书等操作。
2)作者可以进行个人管理、阅读电子书、编写电子书等操作。
3)管理员可以进行用户管理、电子书管理、个人设置等操作。
1.2.2研究的重点及要解决的关键问题
研究的重点:
(1)开发系统之前,需要对该系统进行需求分析。
(2)数据库的设计怎样才能更加符合这个系统的需求。
(3)MVC设计模式的使用,SSH框架的运用。
(4)系统中具体的业务功能的实现。
(5)使用JSP来完成视图层。
要解决的关键问题:
(1)系统的角色访问控制(RBAC),实现对系统的各项操作均对应权限校验,如该用户没有权限则自动跳转到无权限提示页面。
系统权限根据角色划分,各功能点只对应角色,角色下会对应多个用户。
(2)树状结构显示电子书的分类及目录,电子书要有所属分类(树级),每个分类下可以有很多电子书;
书籍列表按最新更新日期倒排序。
电子书要有目录(树级),每个电子书下有很多目录。
(3)实现每一章节内容可编辑修改,参照博客上的文章编辑,应具有图片上传、显示等主要的功能。
(4)实现书籍可根据选择的不同模板而显示不同的样式,即不同的CSS方案。
1.3系统开发环境介绍
系统开发平台使用的是MyEclipse,JDK的版本为1.6,服务器使用Tomcat6.x,数据库使用SQLServer2005。
使用SSH框架,JSP完成视图层,Struts2完成控制层,Spring2完成业务层,Hibernate3完成数据的封装。
本系统的是基于MVC模式开发的JAVAEE应用系统,MVC是一种Model(模型)/View(视图)/Controller(控制器)的结构形式,通过明确分离业务逻辑,数据介绍和应用的行为。
Model在应用程序的主要部分是指业务数据和业务逻辑。
View是接口,通过它用户可以访问和查询业务状态,但用户不能通过它进行修改。
View还可以接受Model的要求更新数据和更新用户界面同步进行。
由于一个模型可以被多个视图使用,这样提高了应用程序的可重用性。
Controller的作用包括接受从客户端的请求,选择合适的业务逻辑来执行,然后发送响应结果返回给客户端[4]。
J2EE架构由于其层次性、平台无关性、可伸缩和扩展性,为应用系统提供了灵活的选择和稳定可靠的实现,从而成为企业级应用程序最主要的开发平台之一。
然而,J2EE传统开发模式却往往十分复杂,存在显示、业务和数据的高耦合,软件难以复用的缺陷,不能满足降低开发团队技术成本和分工协作难度,缩短开发时间的要求。
成熟的J2EE框架技术是解决上述问题的重要技术[5]。
MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用开发时,如果采用现成的成熟的MVC框架,能够达到事半功倍的效果。
而本系统的开发使用的是SSH2(Struts2+Spring+Hibernate)框架。
Struts框架是基于MVC模式的框架,是Apache软件基金会旗下的Jakarta项目组的一部分,是一个免费开源的Web层的应用框架,主要采用JSP与Servlet技术实现,把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,关注于控制器的流程而开发人员只需开发相应的Action类、ActionFormBean和JSP组件,就可以套用Struts框架,进行项目的开发[6]。
Hibernate框架是一个优秀的Java持久层解决方案,是一个对象/关系映射框架。
它把对象模型表示的对象映射到基于SQL的关系模型基础上,在JDBC的方式上进行轻量级对象封装。
同时Hibernate还提供数据查询和获取数据的方法,减少使用SQL和JDBC访问数据库的时间[7]。
Spring框架是在J2EE的基础上实现的一个轻量级J2EE框架。
它服务于所有层面的应用程序,提供了Bean的配置基础、AOP的支持、JDBC提取框架、抽象事务支持等,它还有效地组织了系统中的中间层对象,消除了组件对象创建与使用耦合紧密的问题。
著名的软件大师RalphJohnson对框架(Framework)进行了如下的定义:
框架是整个系统或系统的一部分的可重用设计,由一组抽象的类及其实例间的相互作用方式组成[8]。
框架一般具有即插即用的可重用性、成熟的稳定性以及良好的团队协作性。
Spring本身提供了一套极其优秀的MVC框架,但设计过于复杂,采用了大量的映射策略,如请求到控制器之间控制器解析策略。
复杂的角色划分,使得MVC层的开发很复杂。
Struts应该是MVC框架的第一选择。
应为它具有稳定性以及成熟的开发群体和丰富的信息资源,保证了企业应用的稳定开发。
在数据持久化方面,虽然Hibernate大大简化了数据持久层的访问,但使用Hibernate进行持久层访问时,还存在很多问题,如事务难以控制,以及基于Hibernate的DAO组件编写复杂等。
Spring在Hibernate基础上,进一步简化了持久层访问,其模板的操作大大降低Hibernate的重复操作,Spring提供的DAO支持简化了DAO组件的开发,SessionFactory的依赖注入简化了Session的控制等[9]。
这些都极大提高了JAVAEE应用的开发效率,所以在实际应用开发中,常常需要利用这三种技术各自的优势进行整合开发。
1.3.1Struts2框架
Struts2框架是在Struts1和WebWork框架的基础上发展而来的,同时吸取了两者的优势,但与Struts1框架相比,在设计理念上有许多本质的不同,对WebWork框架有过研究的读者会发现,Struts2在体系结构和运行流程上与WebWork非常相似。
所以,在一定程度上可以说Struts2实际上继承的是WebWork的血统。
Struts2框架大致由三部分组成:
核心控制器、业务控制器和用户实现的业务逻辑组件。
其中核心控制器由FilterDispatcher充当,该控制器作为一个Filter运行在Web应用中,它负责拦截所有用户的请求,当用户的请求以.action结尾时,该请求将为转入Struts2框架处理。
业务控制器就是用户自己实现的Action类的实例,这个类一般都包含了一个execute()方法,该方法的返回值是一个字符串(如:
SUCCESS,ERROR等),即逻辑视图名,与此对应的是一个实际要转到的视图资源。
其实Struts2用于处理用户请求的Action实例并不是用户实现的业务控制器,而是Action代理,这里用户实现的Action类只是Struts2的Action代理的代理目标,Struts2框架提供了一系列拦截器,通过这些拦截器负责将HttpServletRequest中请求的参数解析出来,传人到用户自定义的Action中,然后执行相应的方法来处理用户的请求。
关于业务逻辑组件方面,Struts2框架并没有提供太多的帮助,它只是一个表现层的框架,在实际的开发中当控制器需要获得业务逻辑组件时,通常是通过工厂模式来获得业务逻辑组件实例的[10]。
Struts2具体的框架结构及工作流程如图1.1所示。
图1.1Struts2流程图
1.3.2Spring框架
Spring是一个非常优秀的轻量级开源框架由RodJohnson创建其组成部分从WebMVC一直到数据持久化访问是一个完整程序结构体系。
简单地说,Spring是一个轻量级的IoC和AOP容器框架,通过Spring的IoC容器,我们将关注点放在需要实现的业务逻辑上。
对AOP的支持则能动态的增强业务方法。
Spring既是全面的又是模块化的。
Spring有分层的体系结构,这意味着开发者能选择使用它任何一个独立的部分,而它的架构又是内部一致。
Spring不会给你的工程添加对其他的框架依赖。
Spring可以称得上是个一站式解决方案,提供了一个典型应用所需要的大部分基础架构。
它还涉及到了其他framework没有考虑到的内容。
Spring不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块。
Spring之所以能迅速在Java开发人员中流行是因为Spring具有以下特点。
1)设计良好的分层结构,使得开发人员可以很简单的进行扩充,并引入先进的设计理念。
2)以IoC为核心,促使开发人员面向接口编程,可以养成良好的编程习惯,从而便于程序的扩充和维护。
3)良好的架构设计,使得应用程序尽可能的依赖应用程序的环境,从而使应用脱离了环境的影响。
4)Spring能够代替EJB。
如果开发人员原来使用EJB,那么使用Spring后还可以继续使用EJB。
如果从头开始开发应用程序,则使用Spring提供的功能就可以代替EJB。
5)SpringMVC很好的实现了MVC2,并提供了很简单的对国际化开发与资源的支持,而且可以与Spring提供的IoC和AOP联系起来。
6)Spring可以与其他框架良好的结合,例如Struts、Hibernate等结合,这使应用开发更为容易[11]。
Spring框架的核心是控制翻转IoC(InversionofControl)/依赖注入DI(DependenceInjection)机制。
IoC是指由容器中控制组件之间的关系(这里,容器是指为组件提供特定服务和技术支持的一个标准化的运行时的环境)而非传统实现中由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”。
DI是对IoC更形象的解释,即由容器在运行期间动态地将依赖关系(如构造参数、构造对象或接口)注入到组件之中[12]。
Spring框架体系结构如图1.2所示。
1.3.3Hibernate3框架
Hibernate3是一种O-R映射中间件,既可将数据库表中的数据包装为Java对象,又可将Java对象映射到数据库表中的数据。
Hibernate3还可以用来作持久化和反持久化,架设起关系型数据库与Java应用程序的桥梁。
启动Hibernate3时,通过Configuration接口获取目前的配置(如数据源、连接用户名及密码、数据库方言以及最大连接数等)并将这些配置加载到内存中,当执行到初始化一个SessionFactory接口时,便一次性创建这个线程安全的Session工厂,每当需要执行持久化操作时,应用程序就会从这个工厂中取一个Session,直至其生命周期结束。
在持久化的过程中,可能会用到Transaction接口进行事务处理,也可能会通过Query和Criteria接口进行查询,Hibernate3底层会自动实现Callback接口[13]。
图1.2Spring框架体系结构图
2系统分析和总体设计
2.1系统功能
用户可以通过网络在线注册后登录到本系统。
不同的用户登录,能进行的操作也不同,对系统的各项操作均对应权限校验,如该用户没有权限则自动跳转到无权限提示页面。
用户注册后默认是读者权限。
读者可以在线查询阅读电子书,可以根据选择的不同模板而显示不同的样式,即不同的CSS方案,读者可以申请成为作者。
作者可以在线查询阅读电子书外,还可以自己编写电子书,用户可以根据需求选择要编写的电子书类别,文章编辑上提供图片上传和显示功能,发布后可以供大家阅读。
系统管理员拥有最大权限,可以对所有用户进行管理,对申请作者的用户进行审核。
2.2系统功能模块划分
系统根据角色划分权限,不同的用户登录后可以进行不同的操作。
1)作者可以进行个人管理、阅读电子书等操作。
2)读者可以进行个人管理、阅读电子书、编写电子书等操作。
在线电子书制作系统前台功能结构图如图2.1所示。
图2.1在线电子书制作系统前台功能结构图
在线电子书制作系统后台功能结构图如图2.2所示。
图2.2在线电子书制作系统后台功能结构图
2.3系统流程图
在线电子书制作系统前台流程图如图2.3所示。
图2.3在线电子书制作系统前台流程图
在线电子书制作系统后台流程图如图2.4所示。
图2.4在线电子书制作系统后台流程图
3数据库设计
3.1数据库结构设计
在本系统的开发过程中,先是使用PowerDesigner设计系统的概念数据模型(CDM),然后利用概念数据模型自动生成物理数据模型(PDM),然后根据需要生产制定的数据库,本系统中使用SQLSevere2005作为数据库。
3.1.1系统的物理数据模型
系统的物理数据模型图如图3.1所示。
图3.1系统的物理数据模型图
3.1.2数据库中表的设计
本系统一共有9张表,数据库采用SQLSevere2005数据库。
其中在表的设计时,均使用了保留字段,便于系统的后期的开发与扩展。
(1)用户资料表(T_USER)
用户资料表描述了用户的基本信息。
其中包括用户登录系统的账号、密码等基本信息。
用户资料表结构如表3.1所示:
表3.1用户资料表(T_USER)
序号
字段名称
数据类型
默认值
可否为空
主健
说明
1
USER_ID
varchar(32)
自动生成
否
是
用户ID
2
USER_NAME
varchar(50)
无
账号
3
USER_PASSWORD
密码
4
USER_REALNAME
真实姓名
5
USER_NIC
昵称
6
USER_SEX
性别
7
USER_AGE
int
年龄
8
USER_EMAIL
邮箱
9
USER_PHONE
联系电话
10
USER_SELFSHOW
varchar(200)
简介
11
RESERVE1
保留字段
(2)电子书种类表(T_BOOK_TYPE)
电子书种类表描述了电子书种类的基本信息。
其中TYPE_REMOVE_TIME为null时表示可用,反之表示该类别已经被删除。
TYPE_PID表示种类的父结点的ID号,TYPE_PID为null时表示没有父节点。
本系统中电子书的种类划分为5级。
电子书种类表结构如表3.2所示:
表3.2电子书种类表(T_BOOK_TYPE)
BOOK_TYPE_ID
种类ID
BOOK_TYPE_NAME
种类名称
TYPE_PID
种类父结点ID
TYPE_REMOVE_TIME
datetime
删除时间
(3)电子书信息表(T_BOOK_INFO)
电子书信息表描述了电子书的基本信息。
其中BOOK_REMOVE_TIME为null时表示可用,反之表示该电子书已经被删除。
BOOK_CREATE_TIME以在数据库创建时间为准。
BOOK_TYPE_ID,USER_ID必须能在对应表中找到对应的数据。
电子书信息表结构如表3.3所示:
表3.3电子书信息表(T_BOOK_INFO)
BOOK_ID
电子书ID
BOOK_TITLE
varchar(255)
电子书名称
BOOK_INTRODUCTION
ntext
电子书介绍
BOOK_CREATE_TIME
发布时间
BOOK_REMOVE_TIME
BOOK_STATE
状态
BOOK_AUTHOR
作者
BOOK_CLICK
点击量
(4)电子书目录表(T_BOOK_DIRECTORY)
电子书目录表描述了电子书目录信息。
其中BOOK_ID必须能在对应表中找到对应的数据。
DIRECTORY_PID表示种类的父结点的ID号,DIRECTORY_PID为null时表示没有父节点。
本系统中电子书的目录划分为5级。
DIRECTORY_REMOVE_TIME为null时表示可用,反之表示该目录已经被删除。
电子书目录表结构如表3.4所示:
表3.4电子书目录表(T_BOOK_DIRECTORY)
DIRECTORY_ID
目录ID
DIRECTORY_PID
目录父结点ID
DIRECTORY_CONTENT
内容
DIRECTORY_NAME
目录名称
DIRECTORY_UPDATE_TIME
更新时间
DIRECTORY_REMOVE_TIME
3.1.3表之间的关系设计
系统的数据库关系图如图3.2所示。
图3.2数据库关系图
3.2数据库连接设置
数据库的连接使用c3p0数据库连接池,c3p0配置在applicationContext.xml文件里。
详细配置如下:
<
!
--定义数据源Bean,使用C3P0数据源实现-->
<
beanid="
dataSource"
class="
com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="
close"
>
<
--指定连接数据库的驱动-->
propertyname="
driverClass"
value="
com.microsoft.sqlserver.jdbc.SQLServerDriver"
/>
--指定连接数据库的URL-->
jdbcUrl"
jdbc:
sqlserver:
//127.0.0.1:
1433;
databaseName=EBOOK_DB2"
--指定连接数据库的用户名-->
user"
sa"
--指定连接数据库的密码-->
password"
sql2005"
--指定连接数据库连接池的最大连接数-->
maxPoolSize"
20"
--指定连接数据库连接池的最小连接数-->
minPoolSize"
1"
--指定连接数据库连接池的初始化连接数-->
initialPoolSize"
--指定连接数据库连接池的连接的最大空闲时间-->
maxIdleTime"
/bean>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 样本 计算机 毕业设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)