37-基于Struts、Hibernate的文档管理系统 - 图文

更新时间:2024-06-02 18:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

基于Struts、Hibernate的文档管理系统

姓 系 别、导 师、完 成

名 专 业

职 称

www.51jplw.com

1

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

目 录

摘要...................................................... I ABSTRUCT..................................................II 1. 概述 .................................................. 1 1.1 国内外研究动态 ....................................... 1 1.2 开发工具及硬软件要求 ................................. 1 1.3 文档管理系统特点 ..................................... 2 1.4方案选择及开发技术介绍 ................................ 2 1.5发框架介绍 ........................................... 4 2. 系统分析 .............................................. 5 2.1 需求分析 ............................................. 5 2.2 可行性分析 ........................................... 6 3. 系统设计 .............................................. 7 3.1 系统目标 ............................................. 7 3.2 系统体系结构设计 ..................................... 7 3.3 系统功能模块说明 ..................................... 8 3.4 业务流程图 ........................................... 8 4. 数据库设计 ........................................... 10 4.1 数据库概要说明 ...................................... 10 4.2 数据抽象与局部视图设计 .............................. 10 4.3 数据库逻辑结构设计 .................................. 11 5. 系统详细设计与实现 ................................... 13 5.1 登录模块设计 ........................................ 13 5.1.1页面设计 .......................................... 13 5.1.2功能实现 .......................................... 14 5.2 主页面模块设计 ...................................... 18 5.2.1 会员主页面模块概述 ................................ 18 5.2.2 界面模块的设计与实现 ............................. 19 5.3 管理员管理模块设计 .................................. 27 5.3.1 管理员管理模块概述 ................................ 27 5.3.2 管理员管理模块的设计 .............................. 28 6. 系统的测试与分析 ..................................... 29

www.51jplw.com

I

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

7. 在文档管理系统的完善与改进 ........................... 30 8. 结论 ................................................. 30 参考文献 ................................................ 31 致 谢 ................................ 错误!未定义书签。 附 录 ................................................ 33

II

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

摘 要

本系统是一个用Struts和Hibernate技术、基于B/S架构开发的网上文档管理系统。系统用户分为三类:管理员、会员和普通用户。系统管理员能管理系统内的所有文档和会员,会员能查看系统内的文章并能上传一些有独特见解的文章供其它员工查阅,普通用户能查看系统内的文章但不能上传文档。

本系统的业务逻辑层由struts实现,数据持久层由Hibernate实现,视图层由JSP实现。本系统还采用比较成熟的M-V-C模式来开发整个系统,大大提高了本系统的可维护性和可扩展性。

关键词: B/S架构;struts;Hibernate;文档管理系统

www.51jplw.com

I

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

Abstract

This system is a technology with Struts and Hibernate, based on B / S architecture developed online document management system. Users of the system is divided into three categories: administrators, members and general users. System administrators can manage all documents within the system and members, members can view articles within the system and can upload the article some unique insight for other employees access to, ordinary users can view the articles within the system but can not upload the document.

The system's business logic to achieve by the struts, the data from the Hibernate persistence layer implemented by the JSP view layer implementation. The system also uses a more mature MVC pattern to develop the system, greatly improved the system's maintainability and scalability.

Key words:B/S structure system;Struts; Hibernate; Documents management system

www.51jplw.com

II

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

1. 概述

1.1 国内外研究动态

计算机语言日新月异,随着Internet和信息技术的不断发展, 让越来越多的公司和组织机构逐渐开始体验到了一种“成长的烦恼”。企业信息应用化成为内外沟通的根本所在,如ERP、CRM、PDM等各种应用系统的建立使得企业可以轻松管理各种表单等结构化的数据,而调查显示,这些结构化的数据一般只占到整个企业数据的20%,所以,剩余80%的企业数据如何更有效的管理就成了企业不得不面对的又一个问题,这时,借助文档管理系统,无疑成为提高工作效率,解决工作协调性的必经之路,文档管理逐渐走入了企业的视野。传统纸质的商业策划书、客户档案、设计图纸、性能测试报告等都实现了数字化。

企业内容管理(Enterprise Content Management,ECM)目前在国内外非常热门,市场发展迅速。近几年,ECM市场发生了很多重组和兼并的重大事件。Interwoven公司完成了自己的收购目标,完善了自己的ECM产品线。这一系列的行业并购将更多的技术和应用吸纳到ECM范畴中,使得ECM产品和市场越来越成熟,而越来越多的行业巨头进入该领域,也说明了文档管理系统市场的未来的广阔前景。

1.2 开发工具及硬软件要求

1) 开发工具

本系统是采用windows操作系统,以MyEclipse为开发工具,用中文版的

Oracle作为后台数据库来实现的。

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, JavaScript, SQL, Hibernate。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。

2) 硬软件要求

硬件需求: 内存1G以上,硬盘空间视文档资料的多少而定,要求为文档管理系统分配足够的数据库磁盘空间;

操作系统需求: windows( 推荐 )或linux操作系统;

www.51jplw.com

1

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

数据库软件需求: Oracle 9i/10g ( 推荐 ) ,也可以使用 SQL Server

2000 或MySQL数据库;

中间件软件需求:Apache Tomcat系列服务器。

1.3 文档管理系统特点

随着Internet/Intranet的迅速发展和广泛普及,以网络为基础的资源共享成为现代共享资源的一种重要方式。

Internet技术的发展使得信息传播的方式和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得信息的传播突破了时间和空间的限制。基于Internet的文档管理系统正成为人们的研究热点之一。与传统的信息共享传播方式相比,网上资源共享具有无可比拟的优越性,它可以将传统的以纸为传播信息的方式改为用网络这种看不见摸不着不占地方且花费又少的这种东西来传播信息,大大节省了人力和物力,还给管理带来了很大的方便。 ? 系统特点:

1) 系统架构采用M-V-C三层结构、B/S模式开发,安全可靠、灵活高效。

系统基于 J2EE,采用三层结构、B/S 模式开发,使系统具有高度的安全性与可靠性;普通用户通过浏览器即可登录系统,会员则有更多的权限,灵活高效。

2) 多种搜索方式能满足各种用户快速地全面的搜索要求。如:按发布者搜索,

按文档名搜索,按发布时间搜索,按点击率搜索等。

3) 分类设置账户身份,实现应用逻辑的分离。系统将用户分为管理员、会

员、普通用户,不同身份的用户对应不同的权限和操作,实现了应用逻辑的分离。

4) 本系统支持会员发表文档功能。

5) 操作灵活,简单。系统功能强大,在操作风格方面也进行了统一,各个

功能模块的操作界面基本是相同的,而且操作也比较简单。

1.4方案选择及开发技术介绍

开发文档管理系统,提出以下解决方案:选择ORACLE 10g作为后台的数据库,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计。

? JAVA简介

Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于

2

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统? Web应用程序开发环境—JSP技术

[1]

JSP的全称是Java Server Pages,它是Sun推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:

1)将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;

2)能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;

3)组件的开发和使用很方便:如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用; 4)一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括一次书写到处运行. ? Tomcat应用服务器

目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个开源的免费的Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。

Tomcat是一个Servlet容器,在Tomcat中,应用程序的部署很简单,只需将整个项目或项目压缩成的WAR文件放到Tomcat的webapps目录下,Tomcat会自动检测到这个文件,并将其解压。在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快,若不修改JSP页面则原来的Servlet文件不会再次编译

[2]

Tomcat一样具有传统的Web服务器的功能:处理Html页面。但是与Apache相比。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。 ? Oracle 10g

Oracle是全球公认最好的数据库提供商,在8i之前支持1024p,9i之后没有限制。

Oracle 具有如下特性:

3

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

1) 其数据库引擎提供完整的 XML 支持 2) 一个数据库引擎可以在不同的平台上使用

3) 其关系数据库引擎支持当今苛刻的数据处理环境所需的功能。 4) 一系列管理和开发工具,是其系统容易安装 、部署、管理和使用。

5) 有析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具

[3]

? B/S 开发模式

伴随着Internet的迅速发展,计算机技术正在由基于C/S(Client/ Server)模式的应用系统转变为基于B/S(Browser/ Server)模式的应用系统。

过去,网络软件的开发都采用C/S(Client/ Server)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:

1)系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。

2)在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患

[4]

? B/S模式带来了巨大的好处:

1)开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。

2)良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。

1.5发框架介绍

本两种框架相结合,可以让开发过程更加便利,逻辑性更强系统采用了目前非常流行的Struts+Hibernate框架。 ? Struts开发框架简介

Struts是一个专门为开发基于模型层 (Model) -视图层 (View) -控制器层 (Controller) (MVC) 模式的应用架构的开源框架,是利用Servlet,JSP和struts标签库构建Web应用的一项非常有用的技术。由于Struts能充分满足应

4

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从JSP/Servlet中分离出来,而使用表现层框架则可以将JSP中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库中的标签(Taglib)实现,不同框架有不同的标签库,Struts是应用比较广泛的一种表现层框架

[5]

? Hibernate持久化数据工具简介

Hibernate是O/R Mapping的一种实现,是目前在JAVA界使用非常广泛的O/R Mapping框架,可以实现关系型数据库和对象之间的映射。用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向:直接自己编写JDBC等SQL语句(如Ibatis);使用O/R Mapping技术实现的Hibernate和JDO技术;当然还有EJB中的实体Bean技术。Hibernate的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate提供的一 些基本类,就可以达到使用数据库的目的。例如,使用Hibernate框架的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。Hibernate提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL

[6]

2. 系统分析

2.1 需求分析

经过调查,我国的网络事业发展得较晚,虽然现在网络的利用已经比以前大了很多,但是目前像网上以图书馆,网上文档管理系统这样的强大有力管理系统为管理工具的还不多。在此方式下,不利于信息的快速传播,所以大家都希望使用类似于网上图书馆这样的基于网络的管理系统来管理这些共享资源以方便他们快速方便的查找资料。

对于用户来说他们希望系统的搜索功能很强大能很方便的满足他们的快速

准确的搜索要求比如说:按类型搜索,按点击率搜索,按作者搜索,按发表时间搜索,按文档名搜索等。经过这么一细化用户就能很快且准确的定位自己想要的资料以满足自己的需要。

本系统主要是搜集各个方面的资料供员工查看。为方便广大用户快速找到自

5

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

己想要的资料,本系统将搜索分为:查看所有文档、查看热门文档、按点击率查看文档、按发布者查看文档。这样用户就能快速的查找到自己需要的资料。同时本系统还为会员保存个人信息,为会员提供发布文档服务,内容上它能满足用户的需求也是可行的。其结构如下图2-1:

图 2-1 文档管理系统结构图

MIS系统(Management Information System信息管理系统)的飞速发展,技术的成熟以及应用领域的不断扩大,为网上信息的交互提供了一个良好的平台和方便的操作界面。由于MIS系统基于用户需求的设计方法,使得该系统的使用更加的人性化、个人化、更贴近用户。本文档管理系统的使用者主要有企业内部成员和管理员使用,从用户的角度来说,由于存储在数据库中的内容较多,本系统解决了用户常常为了找到自己需要的文档而花费大量时间的问题。用户只要在客户端前输入自己的需要查找文档的部分信息即可搜索要找到的文档,大大缩短了查找时间。从管理员的角度来说,要管理大量的阅读者和文档资料同样是节省了大量的工作量,网上进行文档发布能大幅度的减少管理员的工作量,减少错误的发生几率。作为管理员,也只要通过自己的电脑来操作即可。以MIS系统的构建思想来实现文章管理系统可以最大程度的做到实用性,可扩展性和可维护性相结合,安全性以及规范化原则。

2.2 可行性分析

? 经济可行性

在信息时代的今天,大多数地方已经拥有丰富的网络资源,因此本系统的实施条件已具备。通过对将来资金的收益来分析,本系统可以在实施后能明显降低

6

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

文档管理人员的工作量,并能减少资源的消耗。

由于网络是虚拟的更方便对资源文档的管理。因此,本系统在经济上是可行的。

? 技术可行性

从技术上分析研究,本系统的开发主要是对数据库中的相关数据进行操作,考虑到系统的功能要求,开发语言采用Java,数据库则采用Oracle,二者相结合其灵活性,安全性和易用性为系统的开发提供了良好的条件。

同时,本系统采用B/S架构,在投入使用后,后期维护比较容易。 ? 法律上可行性

由于本系统的开发主要采用开源的以Java为基础的框架体系,服务器则采用开源免费的Tomcat,除Oracle数据库需要购买使用外,不存在法律及版权的限制,所以,本系统的开发在法律上是可行的。

3. 系统设计

3.1 系统目标

建立网上文档管理系统的目的:就是采用以计算机为主的现代化设备方便用户能在网络上快速的找到自己想要的资料。从而为广大用户节约宝贵的时间。

3.2 系统体系结构设计

本系统包含的用户分为: 1) 普通用户:只拥有查看文档权限。

发表文档,删除自己发布过的文档。

管理员分为: 1) 管理员:能创建和删除用户,修改个人信息,

查看或删除所有文档,还能发布文档。

本系统体系设计如3-1所示:

2) 会员:会员能查看所有文档,修改个人信息,

7

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图 3-1 结构设计

3.3 系统功能模块说明

文档管理系统主要由以下功能模块组成: ? 管理员

管理员管理模块:管理员对自己的信息进行修改,发布文档, 创建/删除用户,管理所有文档(删除用户上传

的不合法的文档)。 系统管理模块:可安全登陆和退出系统。 ? 会员

上传模块:允许会员发表文档。

搜索模块:可方便快速的搜索想要的资源。

自管理模块:允许会员查看或删除自己发布的文档。 个人信息模块:主要是学生对自己的信息进行修改。 系统管理模块:可安全登陆和退出系统。 ? 用户

搜索模块:可方便快速的搜索想要的资源。

3.4 业务流程图

根据文档管理系统的特点和实际情况,用户和管理员流程图如下所示: 1) 普通用户没有上传和下载权限只能查看文档其业务流程图如3-2所示:

8

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图 3-2 普通用户业务流程图

2)会员拥有发布文档并查看所有文档,因为是会员所以还能修改个人信息,修改自己发表过的文档其业务流程图如3-3所示:

图 3-3 会员业务流程图

3)管理员拥有管理会员和管理所有文档的权限,还能修改个人信息其工作流程图如3-4所示:

9

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图 3-4 管理员业务流程图

4. 数据库设计 4.1 数据库概要说明

根据文档管理业务情况,本系统共建了4个数据表和4个队列。数据表树型结构图包含系统中所有的数据表。如4-1图所示:

图4-1 数据表树型结构图

4.2 数据抽象与局部视图设计

利用数据抽象的方法可以对现实世界抽象得出概念模型的子集及属性,概念结构设计是利用抽象机制对需求分析阶段悼念到的数据进行分类、组织(聚集),形成实体集、属性和码,确定实体集之间的联系类型,进而设计分E-R图,下面是文档管理系统中主要实体的E-R图。

文档管理系统主要实体E-R图如4-2所示:

10

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

private String loginName; private String passwd; private String manager;

public String getLoginName() { }

public void setLoginName(String loginName) { }

public String getPasswd() { }

public void setPasswd(String passwd) { }

public String getManager() { }

public void setManager(String manager) { }

this.manager = manager; return manager; this.passwd = passwd; return passwd;

this.loginName = loginName; return loginName;

//action执行方法

public String execute(){

User user=null; Admin admin=null; IUser_adminService if(\{

try {

16

Map map=ActionContext.getContext.getSession();

service=(IUser_adminService)

BeanFactory.getBean(\

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

}

admin=service.findAdminByName(loginName); if(admin==null) else {

map.Put(\该用户不存在!\

if(admin.getPassword().equals(MD5.getMD5Str(passwd))){

}

}else{ }

return \

map.Put(\密码错误!\

} catch (Exception e) { }

return \

e.printStackTrace(); return \

else{ try {

user=service.login(loginName,passwd); if(user!=null)

return \

} catch (Exception e) { }

return \}

e.printStackTrace(); return \

17

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

为防止未登录用户通过地址访问系统页面,系统采用了拦截器。其主要实现机制是拦截用户通过地址栏的所有访问,先从session中获取用户对象,如果所获取的用户对象是null,说明用户没有登录,跳转到登录界面。这样就可以防止用户通过地址栏的非法访问。

5.2 主页面模块设计

主页面设计的好与坏将会影响到整体应用程序的形象,因此应该首先将应用程序的主页面设计得美观一些。同时,主页面也是一个应用程序控制的核心,应用程序的所有功能调用都要通过主页面来实现。本系统主要面向三种类型的用户,因此主页面有三个,但是其设计都是类似的,下面主要介绍会员主页面的设计,其余的非会员和管理员主页面设计就没写了。 5.2.1 会员主页面模块概述

系统主页面是操作应用程序的入口,会员可以通过操作主页面来控制和调用其他子页面的运行。在主页面中单击左侧的功能,即可在页面的右侧显示其对应的子页面,用户通过操作子页面完成系统的各项功能。会员登录成功后主页面运行效果如图5-3所示:

18

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图5-3 会员主页面运行效果图

修改个人信息链接到modifyuser.jsp页面

查看所有文章链接到allArticle.action让其进行搜索处理 查看热门文章链接到hotArtcile.action让其进行搜索处理 按条件查询链接到searchArticle.jsp页面 发表文章链接到sendArticle.jsp页面

查看自己的文章链接到selfArticle.action让其进行搜索处理 5.2.2 主界面模块的设计与实现 ? 主界面的技术分析

左侧的树形菜单主要通过超级链接来实现。当用户点击菜单时,经过拦截器后,若通过则触发相应的action来处理相应的请求,若用户选择\按条件查询\则会进入如下图5-4的界面:

19

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图 5-4 按条件搜索文档结果界面 实现按条件搜索的部分代码如下:

package web.action;

import java.util.*;

import com.opensymphony.xwork2.ActionContext;

import common.BeanFactory; import service.*;

//按条件搜索的action

public class SelectArticleAction { private String type; //文档类型 private String author; //文档的发布者 private Date startDate; private Date endDate;

private int hits; //文档的点击率 private String topic; //文档的标题

20

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

private int currentpage=1; //当前页 private int pages; //总共页数

private int max=10; //一页最多显示的条数

public int getCurrentpage() { return currentpage; }

public void setCurrentpage(int currentpage) { this.currentpage = currentpage; }

public int getPages() { return pages; }

public void setPages(int pages) { this.pages = pages; }

public int getMax() { return max; }

public void setMax(int max) { this.max = max; }

public String getTopic() { return topic; }

public void setTopic(String topic) { this.topic = topic; }

public String getType() { return type; }

21

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

public void setType(String type) { this.type = type; }

public String getAuthor() { return author; }

public void setAuthor(String author) { this.author = author; }

public Date getStartDate() { return startDate; }

public void setStartDate(Date startDate) { this.startDate = startDate; }

public Date getEndDate() { return endDate; }

public void setEndDate(Date endDate) { this.endDate = endDate; }

public int getHits() { return hits; }

public void setHits(int hits) { this.hits = hits; }

public String execute(){

Map map=ActionContext.getContext().getSession(); IArticleService service=(IArticleService) BeanFactory.getBean(\

List list=null;

List list2=(List) map.get(\ try {

if(author!=null&&topic!=null){

22

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

//按条件搜索文档

list2=service.selectArticle(author.trim(),type,startDate,endDate,hits,topic.trim());

map.put(\ }

//判断并获得将要转到的JSP页面所要的文档

if(list2!=null){

pages=(int)((list2.size()+max-1)/max); if(currentpage<=pages){

if(list2.size()<=max*currentpage&¤tpage==pages){

list=list2.subList(max*(currentpage-1),list2.size());

}

if(list2.size()>max*currentpage){

list=list2.subList(max*(currentpage-1),max*currentpage);

} } }

//将JSP需要的变量放入session范围里

map.put(\ map.put(\

map.put(\} catch (Exception e) { e.printStackTrace();

//搜索失败时的提示信息

map.put(\搜索失败!请检查条件是否正

确!\

return \ }

return \}

23

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

? 主界面的设计

应用程序的主界面在满足程序功能的前提下,一般遵循界面简洁、美观大方和人机交互友好的原则来设计。会员主页面控制面板菜单中所包含的功能选项如下所示:

修改个人信息:进入修改个人信息页面修改个人信息并保存。 查看所有文章:查看此系统中的所有资料。 按条件查询:按用户要求搜索资料。

查看热门文章:按系统里各资料的点击率查看文档(大于100则算是热门文档)。

发表文档:上发表文章。

查看自己的文档: 查找出自己发表的文档并能进行删除。 ? 发表文档的界面及实现过程

当用户点击发表文章时将会进入如下图5-5的界面:

图 5-5 发表文章界面

实现其功能的部分代码如下:

24

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

package web.action;

import common.BeanFactory;

import bean.*; import service.*;

import java.io.BufferedOutputStream; import java.io.File;

import java.io.FileOutputStream; import java.util.*;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

import javax.servlet.ServletContext;

public class SendArticleAction { private String topic; private String type; private String author; private int hits;

private String content;

public String getTopic() { return topic; }

public void setTopic(String topic) { this.topic = topic; }

public String getType() { return type; }

public void setType(String type) { this.type = type; }

public String getAuthor() { return author;

25

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

public void setAuthor(String author) { this.author = author; }

public int getHits() { return hits; }

public void setHits(int hits) { this.hits = hits; }

public String getContent() { return content; }

public void setContent(String content) { this.content = content; }

public String execute(){ author=\ //获得session

Map map=ActionContext.getContext().getSession(); String path=null; String str=null; User writer=null;

Article article=new Article(); //用输入流将文章内容保存到服务器上 ServletContext

ctx=ServletActionContext.getServletContext();

path=ctx.getRealPath(\ str=path+\ try {

FileOutputStream fos=new FileOutputStream(str);

BufferedOutputStream out=new BufferedOutputStream(fos); out.write(content.getBytes()); out.flush(); out.close(); fos.close();

} catch (Exception e1) { e1.printStackTrace(); //保存失败即发表失败

map.put(\发表失败!\ return \

26

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

//将文章信息保存到数据库中 IUser_adminService service1=(IUser_adminService) BeanFactory.getBean(\

IArticleService service2=(IArticleService) BeanFactory.getBean(\

try {

writer=service1.findUserByName(author); article.setAuthor(writer); article.setTopic(topic); article.setType(type); article.setHits(0);

article.setSendDate(new Date()); article.setContent(str); service2.add(article); } catch (Exception e) { e.printStackTrace(); //保存失败发表也失败

map.put(\发表失败!\ return \ }

map.put(\发表成功!\ return \ } }

5.3 管理员管理模块设计

5.3.1 管理员管理模块概述

根据系统需要,该模块应当包含以下功能: 管理员登陆界面如图 5-5所示:

27

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

图 5-5 管理员首页 ? 修改个人信息:修改个人信息。

? 编辑文章:查看并可删除一些不合法的文章。 ? 录入文章:加入资料为系统增加资源。 ? 会员管理:手动增加会员或删除会员。 5.3.2 管理员管理模块的设计 ? 修改个人信息

此功能由ModifyAdminAction处理,修改成功后转到http://localhost:8085/ArticleManager1/admin/login1.jsp页面。 ? 编辑文章

此功能由 ArticleAction处理 编辑成功后转到http://localhost:8085/ArticleManager1/admin/login1.jsp页面。 ? 录入文章

此功能由 ArticleAction处理 编辑成功后转到http://localhost:8085/ArticleManager1/admin/login1.jsp页面。

? 会员管理

此功能由 UserAction处理 增加或删除成功后转到http://localhost:8085/Ar

ticleManager1/admin/login1.jsp页面。

28

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

6. 系统的测试与分析

? 测试环境:

本次测试使用手工测试输出,要求硬件环境: 1) Windows 2000/xp等操作系统 2) Intel80586以上的处理器 3) 512M或以上的内存 4) 10GB或以上的硬盘 5) 鼠标键盘 6) VGA或LCD显示器 ? 测试范围:

本次测试主要针对软件项目的功能和一些基本的用户操作。

? 错误显示:

在管理员管理模块中,当用户点击链接时,要求系统列出该会员发表过的

全部文章,相关代码如下:

public List findArticleByAuthor(User author) {

Session session=HibernateSessionFactory.getSession(); Transaction tr=session.beginTransaction(); IArticleDao

articleDao=(IArticleDao)BeanFactory.getBean(\); List list=null; try {

list = articleDao.findArticleByAuthor(author); } catch (Exception e) { e.printStackTrace(); }

tr.commit(); return list;

}

但是有时会出现错误,错误提示如下:

org.hibernate.LazyInitializationException: could not initialize proxy - the owning

Session was closed

? 错误原因:

1)由于session在服务器端保存的内容有一定的时间限制(默认是三十分钟),当时间超过时session中的内容就会消失,而查询会员曾经发表过的文章

29

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

时需要从session中取出会员信息,然后级联查询出该会员相关的课。而当session消失后,系统无法从session中获取用户信息,所以会出现该错误。

2)请求跳转到下一个页面时下一个页面用到上个页面中的数据,而上个页面中的数据相关的属性的级联设置为:lazy=true ? 解决办法:

延长session在服务器端的有效时间或把lazy属性设置为false。 1) 延长session在服务器端的有效时间 通过配置文件web.xml来实现。 在web.xml中配置,如下:

time(失效时间,单位为分钟)

2) 将user的映射文件配置成如下(部分):

7. 在文档管理系统的完善与改进

由于本系统是一人开发,考虑不周在所难免,由于时间和精力关系界面有待改善,功能也不够完善,因此文档管理系统可能还存在潜在的缺陷,例如系统的稳定性有所欠缺,用户在使用过程中可能出现一些不可预见的异常;缺少帮助文档。在此敬请用户谅解,也希望广大用户能提出宝贵的意见,使文档管理系统更加完善。

8. 结论

开发一个完善的Web系统是一个艰苦的过程,在本次毕业设计的开发过程

30

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

中我深深的体会到了这一点。在本次开发过程中本人的感受是:虽然很辛苦但日子过得很充实。一路走来遇到了很多困难(如:在调试过程中遇到的问题,要不是老师同学帮忙可能几天也调不出来),在老师与同学的帮助和本人的刻苦努力之下,文档管理系统最终实现了所有的功能需求。

没有付出就没有回报!在本次毕业设计的开发过程中,本人学到了很多,如一个网站开发与维护的流程,M-V-C框架技术在Web开发中的使用等,相信这对自己以后的就业会有很大的帮助。

软件开发是一条永无止境的路,没有绝对完美的系统,只有程序员不断提升自身素质,使程序不断地完善。做人也一样人无完人知错能改才是一个真正的好人。

参考文献

[1] 张孝祥编著的java就业培训教程.清华大学出版社.

[2] 孙卫琴编著.Tomcat与java Web开发技术详解.电子工业出版社. [3] (美)雷克尼斯.Oracle SQL必备参考.北京:中国电力出版社.2002.11. [4] 孙卫琴编著.精通Struts:基于MVC的java web设计与开发.电子工业出版社. [5] 李刚.Struts2权威指南.北京:电子工业出版社.2002.

[6] 孙卫琴编著.精通Hibernate:java对象持久化技术详解.电子工业出版社. [7](美)雷克尼斯.Oracle SQL必备参考.北京:中国电力出版社.2002.11. [8] 布雷恩.赖特.JSP数据库编程指南.北京电子希望出版社.

[9] (美)阿斯利森.et al.AJAX基础教程.北京:人民邮电出版社.2006. [10] David Flanagan.JavaScript权威指南. 机械工业出版社.2004.

31

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

32

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

附 录

部分源代码:

创建表代码:

drop table article;

drop table articleUser; drop table manager; drop table rigths;

drop sequence seq_article;

drop sequence seq_articleUser; drop sequence seq_manager; drop sequence seq_rigths;

create sequence seq_article increment by 1 start with 1;

create sequence seq_articleUser increment by 1 start with 1; create sequence seq_manager increment by 1 start with 1; create sequence seq_rigths increment by 1 start with 1;

create table rigths(

id number primary key,

rigthName varchar2(40) not null );

create table articleUser( id number primary key,

name varchar2(20) not null,

password varchar2(20) not null, question varchar2(50) not null, answer varchar2(30) not null, gender varchar2(10), phone varchar2(20),

email varchar2(20) not null, state number,

registerDate date,

rigths_id number references rigths(id) );

create table article(

id number primary key,

topic varchar2(20) not null, type varchar2(10) not null,

33

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

sendDate date,

content varchar2(50) not null, hits number,

articleUser_id number references articleUser(id) not null );

create table manager(

id number primary key,

name varchar2(20) not null,

password varchar2(20) not null, question varchar2(50) not null, answer varchar2(30) not null, email varchar2(30) not null,

rigths_id number references rigths(id) );

Service层实现类:

package service.impl;

import java.util.Date; import java.util.List;

import org.hibernate.Session;

import org.hibernate.Transaction;

import common.BeanFactory;

import common.HibernateSessionFactory; import dao.IArticleDao;

import bean.Article; import bean.User;

import service.IArticleService;

@SuppressWarnings(\

public class ArticleServiceimpl implements IArticleService{

public void add(Article article) {

Session session=HibernateSessionFactory.getSession(); Transaction tr=session.beginTransaction(); IArticleDao

articleDao=(IArticleDao)BeanFactory.getBean(\ try {

34

www.51jplw.com

精品毕业论文、毕业设计,优质的论文服务:www.51jplw.com 精品论文网

提供毕业设计(论文)和图文教程、视频教程等一揽子解决方案

}

articleDao.add(article); } catch (Exception e) { e.printStackTrace(); }

tr.commit();

//此处分页

public List findArticle() {

Session session=HibernateSessionFactory.getSession(); Transaction tr=session.beginTransaction(); IArticleDao

articleDao=(IArticleDao)BeanFactory.getBean(\ List list=null; try {

list = articleDao.findAllArticle(); } catch (Exception e) { e.printStackTrace(); }

tr.commit(); return list; }

public List findArticleByAuthor(User author) { Session session=HibernateSessionFactory.getSession(); Transaction tr=session.beginTransaction(); IArticleDao

articleDao=(IArticleDao)BeanFactory.getBean(\ List list=null; try {

list = articleDao.findArticleByAuthor(author); } catch (Exception e) { e.printStackTrace(); }

tr.commit(); return list; }

public List findArticleByDate(Date date) {

Session session=HibernateSessionFactory.getSession(); Transaction tr=session.beginTransaction(); IArticleDao

articleDao=(IArticleDao)BeanFactory.getBean(\ List list=null;

35

www.51jplw.com

本文来源:https://www.bwwdw.com/article/1xq6.html

Top