资源描述
• 193 •
论文管理系统
论文管理系统
大学教育已经普及,的数量也不断扩大,随之而来的是学生论文数量的不断增多。如果按照手工作业来进行论文库的管理工作,不仅工作量大,而且容易出错,更不方便大家查阅。因此,需要为开发一套论文管理系统。
论文管理系统是学校等机构在自己的局域网上搭建的B/S结构办公平台,用户打开浏览器即可方便快捷地使用该系统,进行论文的发布、管理和查阅工作。本章根据大学中的实际需求,介绍一个完整的学生论文管理系统从设计到实现的方法。
本章采用MySQL作为后台数据库,采用标准MVC三层架构(JSP-JavaBean-Servlet)开发模式。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。
1 概 述
本章讨论的案例是有实际论文管理需求的学校进行论文管理的系统。系统的用户信息和权限由系统管理员进行维护,有身份的用户登录系统进行论文、科技专著、学术报告的发布与管理工作,其他用户都可以进行论文的查阅。要实现的功能包括两个方面,一方面是管理员的管理功能,包括学院维护、系所维护、人员维护和角色权限维护,这一部分是系统管理的基础,至关重要;另一方面是论文管理功能,包括发布论文和进行论文管理、发布科技专著和进行科技专著管理、发布学术报告和进行学术报告管理,这一部分是该系统真正的使用目的所在。下面首先来预览一下本系统的主界面,如图5-1所示。
如前面所述,要实现本系统,就要实现系统管理和论文管理两方面的功能。图5-1中为整个系统的工作界面。系统初始化了一个系统管理员用户,用户名为admin,密码为admin,管理员登录该系统后,首先进行系统基础数据的管理,主要是学院、系所、用户、权限的初始化工作,初始化后的用户可以登录系统进行论文的管理功能工作。
图5-1 论文管理系统主界面
2 需 求 分 析
开发论文管理系统的第一步是进行需求分析。需求分析的好坏直接决定着系统能否真正满足用户的需要。可以将需求分析分为两个过程:一是理解需求,二是分析需求。
2.1 理解需求
下面是一份典型的论文管理系统的文本需求说明。
(1) 根据权限大小分为系统维护管理员、普通管理员,它们的权限如下。
● 系统维护管理员:为本平台的日常网络维护管理,可以对系统进行修改,排除故障。
● 普通管理员:可以发布论文、专著和学术报告,进行已发布文章的管理工作。
● 所有用户:可以进行论文的查询。
(2) 使用人员的机构级别设置学院为一级机构,系所为二级机构。可以有多个学院,每一个学院下有多个系所。
(3) 系统中的学生用户可以发布的文章类型有科技论文、科技专著、学术报告。
(4) 发布论文的学生可以修改和删除已经发布的论文、科技专著和学术报告。
(5) 所有用户都可以查阅已有的数据。
(6) 系统客户端运行在Windows平台下,服务器端可以运行在Windows平台或者Unix平台下,系统还应该有一个较好的图形用户界面。
(7) 系统应该有很好的可扩展性。
2.2 需求分析
分析需求是数据库信息管理系统开发的第一步,也是最重要的一步。理解需求是在问题及其最终解决方案之间架设桥梁的第一步。开发者只有和客户充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。
本章将要介绍的论文管理系统是根据的实际工作需求进行设计开发的。系统使用的流程是先由管理员进行系统数据的初始化,然后由学生登录系统进行论文发布和管理工作,这些登记在库的论文将作为以后查询的主要对象。因为篇幅所限,这里只列出比较关键的部分。
由以上的分析可以得知,论文管理系统的角色可以划分为两类。
(1) 系统管理员:负责管理学院、系所、用户和角色权限。
(2) 用户:发布、管理论文数据库。
这两类用户分别拥有自己的操作功能。每一个操作模块都要实现自身的功能,并且在整个的操作流程中负责承上启下。下面根据这两方面的需求,来分别描述各个模块要实现的功能。
(1) 管理员登录:系统初始化好一个系统管理员用户,管理员能够通过该入口进入系统主界面进行管理操作。
(2) 管理员管理学院:实现对添加新学院、修改、删除等功能。学院的信息包括学院名称、负责人、电话、学院编号。
(3) 管理员管理系所:实现对添加新系所、修改、删除等功能。系所的信息包括系所名称、所属学院、负责人、电话、系所编号。
(4) 管理员管理学生用户:实现添加新人、查看、修改、删除和查询人员信息等功能。学生信息包括的字段有工号(登录用户名)、登录密码、姓名、性别、民族、籍贯、出生日期、身份证号、职称、办公电话、手机、家庭电话、Email、备注、所在学院、所在科室、角色。
(5) 管理员管理角色权限:实现新增、修改和删除角色等功能。系统初始化有“系统维护管理员”的角色,该角色为系统管理员所有,可以进行所有的操作。每一个角色对应的操作权限是操作模块的名称。
(6) 学生登录:用户按照管理员分配的用户名和密码登录系统,其所拥有的权限为系统管理员为其分配的权限集合。
(7) 学生进行论文管理:可以发布、管理论文。包括的字段有编号、学院、作者、刊物名称、论文名称、收录情况、影响力、影响因子、引用次数、第几作者、备注。
(8) 学生进行科技专著管理:可以发布、管理科技专著。包括的字段有编号、学院、作者、字数(万字)、备注。
(9) 学生进行学术报告管理:可以发布、管理学术报告。包括的字段有编号、学院/学校、报告人、职务、报告人单位、报告名称、听众对象、人数、备注。
论文管理管理系统首先是系统维护所用到的数据,如学院、系所、人员以及进行权限控制的权限,接下来是根据各个模块的需要对其进行设计。本系统在设计过程中,尽量考虑到各个模块中相似之处,减少表格数量,提高表格的关联程度,以及减少数据库中数据的冗余。系统设置内容包括学院维护、系所维护、人员维护和角色权限维护。
以上这些部分的内容和设置项,各个部分之间的关系比较明显,即人员属于系所、系所属于学院的所属关系,如图5-2所示,所以在设计数据表的时候增加外键进行关联即可。
因为论文管理、科技专著、学术报告3个模块主要涉及的功能是信息的发布和维护,而这些模块的操作对象是系统的学生用户。这些学生用户是系统管理员建立的,并且必须被分配了这些模块的操作权限后才可以进行论文的发布和管理工作。图5-3描述了学生用户从分配到使用的流程。
图5-2 学院-系所-人员关系 图5-3 学生使用流程图
3 UML系统建模
需求分析后,就可以使用Rational Rose对系统进行UML建模了。下面分别讲解论文管理系统的UML建模过程。
3.1 系统用例分析
在需求分析中列出了论文管理系统的全部用例,使用Rose软件进行UML建模,系统总用例图如图5-4所示,而其他用例同理,由于篇幅关系,这里不再赘述,请读者参照前面的章节自行完成。
图5-4 论文管理系统用例图
该用例图标记了所有的用例,从中可以得知,论文管理系统的角色可以划分为两类。
● 管理员:管理论文、管理系所、管理学生用户、管理角色权限等。
● 学生用户:进行论文管理、科技专著管理、学术报告等。
3.2 系统域类分析
UML建模的第二步就是域类分析。实际开发论文管理系统时,域类分析是建立在用例分析基础上的。要了解系统要处理的概念,这时最好将公司的有关人员组织起来开一个讨论会,了解概念和概念之间的关系。
论文管理系统中的域类主要包括:数据库连接(DataBase)、字符串处理(DealString)、参数配置(ConfigReader)等。可以在域类图中将上面这些类以及它们之间的关系表示出来,如图5-5所示。
图5-5 论文管理系统域类图
3.3 系统活动图
活动图(Activity Diagram)反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程,如图5-6所示,描述了系统学生管理、论文管理、论文查阅的活动执行顺序。活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它对于系统的功能建模特别重要,强调对象间的控制流程。
图5-6 系统活动图
这之后就可以进行详细设计了。考虑到篇幅限制,这里就不再赘述了,读者可参阅本书光盘中的范例。
至此,UML系统建模完成。
4 系 统 配 置
一个好的论文管理系统必然有一个相对最优的系统配置方案。下面讨论如何根据用户的实际情况设计系统的配置,包括软件配置、硬件配置和网络配置。
4.1 软件配置
软件配置主要包括数据库的选择和操作系统的选择。论文管理系统的软件配置要根据用户对系统的稳定性要求、系统的容量以及用户的维护水平来确定。
(1) 数据库的选择
可以根据数据量的大小选择不同的数据库,如表5-1所示。
表5-1 论文管理系统数据库的选择
用 户(人)
每秒数据库并发
数据访问记录数
稳定性要求
维护水平
备选数据库
社区大学
500~5000
低
差
Access,MySQL
专业型大学
5000~50 000
中
一般
SQL Server,MySQL
综合型大学
50 000~200 000
较高
较好
SQL Server,Oracle
在本章中选择MySQL数据库。
(2) 操作系统的选择
可以根据用户量的大小选择不同的操作系统。当然,一般情况下,用户对Microsoft公司的Windows操作系统界面比较熟悉,因此,建议客户端使用Windows 2000或者Windows XP操作系统。
服务器端操作系统的选择如表5-2所示。
表5-2 论文管理系统服务器端操作系统的选择
用 户(人)
每秒数据库并发
数据访问记录数
稳定性
要求
维护
水平
备选操作系统
社区大学
50~500
中
一般
Windows NT,Windows 2000 Server,Windows XP
专业型大学
500~2000
较高
较好
Windows NT,Windows 2000 Server,Windows XP,Linux,UNIX
综合型大学
500~2000
较高
较好
Windows XP,UNIX
在本章中选择Windows XP操作系统作为服务器端操作系统。
4.2 硬件配置
硬件配置主要包括客户端硬件的选择和服务器端硬件的选择。论文管理系统的硬件配置要根据用户对系统的稳定性要求、系统的容量、系统的吞吐量,以及用户的维护水平来确定。这里只给出参考配置的范围,具体的配置需要根据用户的需求精确计算。
(1) 客户端硬件的选择
根据稳定性要求选择不同的客户端硬件,客户端硬件的选择如表5-3所示。
表5-3 论文管理系统客户端硬件的选择
用 户
稳定性要求
备选客户端
学生客户端
中
Pentium Ⅲ/256MB/20GB
(2) 服务器端硬件的选择
根据数据量和吞吐量的大小选择不同的服务器硬件,服务器端硬件的选择如表5-4所示。
表5-4 论文管理系统服务器端硬件的选择
用 户(人)
每秒数据库并发数据访问记录数
稳定性
要求
维护
水平
备选服务器
社区大学
50~500
中
一般
Xeon双CPU/1GB/RAID5 3×72GB
专业型大学
50~500
中
一般
Xeon双CPU/1GB/RAID5 3×72GB
综合型大学
500~2000
较高
较好
小型计算机/双机热备
或者Xeon 4 CPU/4GB/RAID5 6×72GB
4.3 网络配置
论文管理系统的网络配置一般有如下几种类型。
(1) 单机模式:即服务器和客户端在一台计算机上。
(2) 百兆模式:计算机网络的速度为百兆,如图5-7所示。
图5-7 论文管理系统网络百兆配置
(3) 千兆模式:计算机网络的速度为千兆。实际上,没有必要给每个节点都配备千兆网络接口,只需要给服务器端配备千兆接口即可,如图5-8所示。
图5-8 论文管理系统网络千兆配置
可以根据用户情况选择不同的网络配置,如表5-5所示。
表5-5 论文管理系统网络配置的选择
用 户(人)
每秒数据库并发
数据访问记录数
稳定性
要求
维护
水平
备选网络方案
社区大学
50~500
中
一般
百兆模式
专业型大学
500~2000
较高
较好
百兆模式
综合型大学
2000以上
高
好
千兆模式
5 数据库分析
数据库分析是整个论文管理系统开发过程中一个重要环节,它具体可分为两个部分:一是概念模型的分析,即E-R图的分析;二是逻辑模型的分析,即表与字段的分析。本节将使用PowerDesigner完成E-R图的分析和数据库建模。
5.1 系统E-R图
根据UML系统模型,可以确定系统中的各种实体以及它们之间的关系。本系统根据上面的设计规划出的实体包括:学生用户数据实体(kjc_people)、学院数据实体(kjc_college)、系所数据实体(kjc_department)、角色数据实体(kjc_role)、权限数据实体(kjc_right)、论文字典数据实体(kjc_code)、论文数据实体(kjc_paper)、科技专著数据实体(kjc_bookstatistic)、学术报告数据实体(kjc_report)等。通过对实体联系的分析,在本系统中使用PowerDesigner设计E-R模型。PowerDesigner的概念数据模型(CDM)把现实的信息简化为实体与实体之间的联系,它与DBMS无关。CDM的建立是一个比较复杂的过程,实体关系图的分析结果也非常复杂,一般情况下使用自底向上的方法,首先对局部视图进行分析设计,然后再实现视图集成。这里不再对局部视图进行设计,直接给出视图集成后的E-R图,如图5-9所示。
在进行详细的实体关系图设计时,使用用户信息进行系统用户基本信息的管理以及登录系统时用户名、密码和权限的设定;在设计时,论文管理、科技专著、学术报告3个模块主要涉及的功能是信息的发布和维护,而这些模块的操作对象是系统的学生用户,所以可以通过相似性,来减小系统开发难度;在这里通过学生用户使用系统进行发布的过程来记录系统动态操作的过程。其实,以上E-R图只是论文管理系统最基本元素的实体关系图,读者可以在此基础上根据用户的不同需要进行扩展。
图5-9 论文管理系统实体关系图
5.2 表与字段分析
表与字段分析是建立在如图5-9所示的论文管理系统E-R图的基础上,可以通过该E-R图确定系统中所有的表及其字段。表与字段分析后就可以使用PowerDesigner建立数据库模型了。PowerDesigner提供了工具产生表和字段并建立数据库模型,所以可以根据上面的E-R图直接生成数据库模型。对于复杂数据库,使用PowerDesigner可以有效减轻工作量并提高设计质量。建立的数据库模型如图5-10所示。
图5-10 论文管理系统的数据库模型
6 数据库设计
在论文管理系统的数据库设计中,首先要创建系统数据库,然后在数据库中创建需要的表和字段。
6.1 数据库结构设计
管理员进行基础信息的管理包括学院、系所、学生、角色管理,因此要包括4个数据实体。根据前面的分析可知,这4个实体要描述的信息分别如下。
● 学院数据实体:学院名称、负责人、电话、学院编号。
● 系所数据实体:系所名称、所属学院、负责人、电话、系所编号。
● 学生数据实体:工号(登录用户名)、登录密码、姓名、性别、民族、籍贯、出生日期、身份证号、职称、办公电话、手机、家庭电话、E-mail、备注、所在学院、所在科室、角色。
● 角色数据实体:角色编号、权限集合名称。
由于权限对应的是操作模块按钮的名称,在程序初始化时,这些数据都应该具有了,因此应用有如下的数据实体。
● 权限数据实体:权限编号、操作权限名称。
以上的5个实体都是基本的数据实体。
论文管理系统的目的是进行论文管理,因此要包括如下的几个数据实体。
● 论文数据实体:编号、学院、作者、刊物名称、论文名称、收录情况、影响力、影响因子、引用次数、第几作者、备注。
● 论文字典数据实体:论文字典的类型、编号、名称。
● 科技专著数据实体:编号、学院、作者、字数(万字)、备注。
● 学术报告数据实体:编号、学院/学校、报告人、职务、报告人单位、报告名称、听众对象、人数、备注。
6.2 创建数据表
在这个数据库管理系统中要建立9张数据表。
● 学院数据表(kjc_college):用于存放学院数据。
● 系所数据表(kjc_department):用于存放系所数据。
● 学生数据表(kjc_people):用于存放学生数据。
● 角色数据表(kjc_role):用于存放角色数据。
● 权限数据表(kjc_right):用于存放权限数据。
● 论文数据表(kjc2_paper):用于存放论文数据。
● 论文字典数据表(kjc2_code):用于存放论文字典数据。
● 科技专著数据表(kjc2_bookstatistic):用于存放科技专著数据。
● 学术报告数据表(kjc2_report):用于存放学术报告数据。
这9张数据表的字段说明如表5-6~5-14所示。
表5-6 学院数据表(kjc_college)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一编号
2
Name
Varchar2(50)
学院名称
3
Tel
Varchar2(15)
办公电话
4
Man
Varchar2(10)
负责人
表5-7 系所数据表(kjc_department)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一编号
2
Name
Varchar2(50)
系所名称
3
Tel
Varchar2(15)
办公电话
4
Man
Varchar2(10)
负责人
5
college
Int(10)
所属学院
表5-8 学生数据表(kjc_people)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(20)
惟一编号
2
workid
Varchar2(20)
工号,登录用户名
3
password
Varchar2(20)
登录密码
4
Name
Varchar2(20)
姓名
5
Sex
Varchar2(2)
性别
6
Nation
Varchar2(50)
民族
7
Addr
Varchar2(100)
籍贯
8
Birth
date
出生日期
9
Certid
Varchar2(18)
身份证号
10
Post
Varchar2(50)
职称
11
Officetel
Varchar2(15)
办公电话
12
Mobile
Varchar2(15)
手机
13
Hometel
Varchar2(15)
家庭电话
14
E-mail
Varchar2(100)
电子邮件
15
descs
Varchar2(200)
备注
16
collegeid
Int(10)
所在学院
(续表)
编 号
字 段 名 称
字 段 类 型
说 明
17
departmentid
Int(10)
所在科室
18
roleid
Int(10)
角色
表5-9 角色数据表(kjc_role)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一编号
2
Name
Varchar2(50)
权限名称
表5-10 权限数据表(kjc_right)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一编号
2
Name
Varchar2(50)
角色名称
3
Tel
Varchar2(100)
权限集合
表5-11 论文数据表(kjc2_paper)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一字段
2
Bh
Varchar2(20)
编号
3
Xy
Varchar2(50)
学院
4
Zz
Varchar2(20)
作者
5
Kwmc
Varchar2(50)
刊物名称
6
Lwmc
Varchar2(100)
论文名称
7
Slqk
Int(10)
收录情况
8
Slqk_name
Varchar(100)
收录情况
9
yxl
Varchar2(10)
影响力
10
Yxyz
Varchar2(5)
影响因子
11
Yycs
Int(5)
引用次数
12
Djzz
Int(5)
第几作者
13
bz
Varcahr2(200)
备注
表5-12 论文字典数据表(kjc2_code)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
数据表的惟一字段
2
codeid
Varchar2(20)
查询字典的惟一字段
3
type
Varchar2(20)
字典类别
4
name
Varchar2(20)
字典描述
5
value
Varchar2(20)
字典值列表
表5-13 科技专著数据表(kjc2_bookstatistic)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一字段
2
Bh
Varchar2(20)
编号
3
Xy
Varchar2(50)
学院
4
Zz
Varchar2(20)
作者
5
cbs
Varchar2(50)
出版社名称
6
Zs
Varchar2(5)
字数(万字)
7
bz
Varchar2(200)
备注
表5-14 学术报告数据表(kjc2_report)
编 号
字 段 名 称
字 段 类 型
说 明
1
Id
Int(10)
惟一字段
2
Bh
Varchar2(20)
编号
3
Xy
Varchar2(50)
学院/学校
4
Bgr
Varchar2(20)
报告人
5
Zw
Varchar2(20)
职务
6
Bgrdw
Varchar2(20)
报告人单位
7
Bgmc
Varchar2(20)
报告名称
8
Tzdx
Varchar2(20)
听众对象
9
Rs
Varchar2(10)
人数
10
bz
Varchar2(200)
备注
6.3 快速创建数据库
为了快速正确搭建系统,读者可以使用光盘中提供的本案例的数据文件来建立数据库。在建立数据库之前,应正确安装完成MySQL的数据库软件,并启动MySQL数据库服务。
安装步骤为:解压缩本案例的程序压缩文件,找到database目录,将article目录复制到%MySQL_HOME%;\data\目录下,重新启动MySQL服务。此时数据库就可以供程序使用了。数据库名为article,默认存在一个用户root,密码为空。
7 系 统 准 备
接下来要进行代码编写了,在进行编写之前,需要搭建系统的环境。最基础的就是从目录的建立开始,建立系统的基础应用模块和站点配置环境,并进行数据库的正常连接。
7.1 目录结构
在进行程序设计和开发之前要设计系统的目录结构,一般这个结构对任何的B/S系统都是通用的。本系统的目录结构如图5-11所示。
图5-11 目录结构
在该目录结构中,article代表本站点的根目录,它包含4个子目录:database用于存放数据库备份文件,doc用于存放系统的文档,web用于存放系统的JSP等的源文件,WEB-INF用于存放系统所使用的类包。其中web和WEB-INF是主要开发的目录。Web包含5个主要的子目录:kjc2_edit用于存放论文等的发布代码,kjc2_manage用于存放论文等的管理代码,main用于存放系统主框架程序代码,org用于存放管理员进行学院等的维护的代码,uer用于存放用户管理代码,其他的目录为图片等文件的目录。WEB-INF包含两个子目录:classes用于存放类文件,lib用于存放类包文件,同时该目录下还包括站点的配置文件web.xml。
这个目录结构是通用的目录结构,读者可以根据需要进行相应的修改。
7.2 通用模块
本系统采用数据库连接池进行数据库的统一管理,同时在数据库操作上进行了封装,方便程序开发时与数据库的交互,接下来详细看一下这两个方面。
(1) 数据库连接池
在实现某一个功能时,首先要连接数据库。如果在每一次需要进行数据库操作前都来加载驱动、创建连接,那么在连接的入口参数处理上将是十分零散,不好管理和维护。一旦系统移植,数据库参数改变,将需要重新修改所有的连接代码,重新编译,这项工作复杂,是不必要的,也是可以省去的。可以采用DBConnectionManager类来创建连接池,创建代码如下:
private void createPools()
{
String poolName = Configuration.ConnectionPoolName;
String url = Configuration.DB_URL;
if(url == null)
{
Logger.log("没有为连接池" + poolName + "指定URL");
return ;
}
String user = Configuration.DB_USERNAME;
String password = Configuration.DB_PASSWORD;
String maxconn = Configuration.DB_MAXCONNNUM;
int max;
try
{
max = Integer.valueOf(maxconn).intValue();
}
catch(NumberFormatException e)
{
Logger.log("错误的最大连接数限制: " + maxconn + " .连接池: " + poolName);
max = 0;
}
DBConnectionPool pool =
new DBConnectionPool(poolName, url, user, password, max);
pools.put(poolName, pool);
Logger.log("成功创建连接池" + poolName);
}
在此类中,有4个参数:即数据库的驱动、连接地址、用户名和密码,这4个参数存储在WEB-INF\conf.xml文件中。这样,在数据库移植或系统环境改变时,只须修改这个配置文件就可以了,十分方便。
文件confi.xml的配置参数如下所示:
<url>jdbc:MySQL://localhost:3306/article</url>
<jdbcdriver> org.gjt.mm.MySQL.Driver </jdbcdriver>
<dbusername>root</dbusername>
<dbpassword></dbpassword>
<maxconnection>500</maxconnection>
分别表示的参数为连接的地址、驱动名、数据库用户名、密码、连接池数量。如果读者创建的数据库参数与这里不同,直接修改此文件即可。
(2) 数据库封装
数据库已经进行连接,那么根据第1章的学习知道,在每一次需要进行数据库的某种操作时,只须调用对应的JDBC的函数就可以了。但是,在实际的开发中发现,直接使用JDBC函数将使代码的编写工作十分浪费。为了提高编写代码的效率,可以封装DataBase。该类封装了基本的操作函数。如下代码表示执行查询语句的函数:
public ResultSet QuerySQL(String sql)
{
ResultSet rs = null;
try
{
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
}catch(SQLException sqle){}
return rs;
}
如下的代码封装了执行更新SQL语句的函数:
public int ExecuteSQL(String sql)
{
try
{
pstm = conn.prepareStatement(sql);
pstm.executeUpdate();
mit();
}
catch(SQLException sqle)
{}
return 0;
}
该类封装了数据库操作的基本函数,用于作为JavaBean的父类,便于统一管理。该类的一个重要作用是从连接池里取得一个连接,在使用结束时关闭连接。统一处理了这些额外的工作和异常的抛出,使设计者能够放心编写JavaBean。
7.3 配置站点与数据库连接
在讲解代码实现之前,先按照如下步骤搭建好站点的环境,以便直观学习。
(1) 安装JDK1.4.0
下载JDK1.4.0版本安装程序,连续单击“下一步”按钮,安装过程中均采用默认选择,直至安装结束。安装结束后,在桌面“我的电脑”图标上右击,在弹出的快捷菜单中选择“属性”命令,弹出“系统特性”对话框,在“高级”选项卡中单击“环境变量”按钮,在弹出的对话框中新建环境变量JAVA_HOME,值为C:\j2sdk1.4.0。
(2) 安装Tomcat 4.1.24
连续单击“下一步”按钮,直至安装结束,在选择安装路径时推荐安装在根目录,例如C:\Tomcat 4.1。
● 设置环境变量:在“我的电脑”属性中设置环境变量为TOMCAT_HOME= C:\Tomcat 4.1。
● 建立站点:修改C:\Tomcat 4.1\conf\server.xml,在</Host>上一行添加如下代码来建立站点。
<Context path="/article" docBase="D:\article" reloadable="false" debug="0"/>
此步骤应该对应程序安装的目录。
● 部署源程序:解压缩复制目录article,例如D:\,解压后的目录应该满足D:\ article \ WEB-INF。
(3) 访问系统
启动MySQL,Tomcat,输入地址http://localhost:[port]/article/即可访问,用户admin,密码初始化为admin。
至此,软件环境安装完成。
8 界面设计及代码实现
从上面系统的设计可知,本系统的界面共分为如下两大部分。
(1) 管理员管理模块,用于管理员进行系统初始化和系统管理,它包括如下几个部分。
● 学院管理:包括列表页面、新增页面、修改页面。
● 系所管理:包括列表页面、新增页面、修改页面。
● 人员管理:包括列表页面、新增页面、修改页面。
● 角色管理:包括列表页面、新增页面、修改页面。
(2) 学生论文管理模块,用于进行论文、科技专著、学术报告发布和管理,包括如下几个部分。
● 论文管理:包括列表页面、新增页面、修改页面。
● 科技专著管理:包括列表页面、新增页面、修改页面。
● 学术报告管理:包括列表页面、新增页面、修改页面。
根据这些整体关系的设计,下面对每一个部分给出主要界面的设计及其设计思路。
8.1 登录模块设计和实现
用户要进行论文管理,就要拥有自己的登录入口,这是任何一个系统管理功能保密性的需要。根据数据库部分的设计知道,用户信息存放在数据表kjc_people中,初始化填入了一个系统管理员用户记录,用户为admin,密码为admin。在用户登录界面中,也包括用户名和密码的输入文本框,还要包括提交登录的按钮。登录界面如图5-12所示。
图5-12 登录界面设计
此界面除了用户管理员登录以外,还可以用于学生登录,凡是管理员新增的用户都可以通过它来进入系统。
在登录界面上需要提供工作证号和密码的输入文本框作为身份验证的依据。登录界面的JSP程序都可以在所附光盘的web\main目录下找到。上面登录窗口的JSP代码可以查看所附光盘代码文件teacher\web\main\login.jsp。下面是其中的部分程序段。
<!--设定表单所要提交的路径和提交方式-->
<form name="forma" action="login.cgi" method="post" >
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr><td align="center"><div align="center" height=50>学生办公管理系统</div></td></tr>
<table width="398" border="0">
<tr><!—设定工作证号和密码输入框 -->
<td width="25" height="27"><img src="image/all1.jpg" width="25" height="25"></td>
<td width="150">
<span class="style2">工作证号:</span>
<input class="style3" name="UserName" type="text" size="10">
</td>
<td width="30"><img src="image/all2.jpg" width="25" height="25"></td>
<td width="*">
<span class="style2">密码:</span>
<input class="style3" name="UserPass" type="password" size="10">
</td>
<td align="center"><input name="Submit" type="submit" class="submit" value="登陆
"></td>
</tr>
</table>
</tr>
</table>
</form>
上面程序段中<form name="forma" action="login.cgi" method
展开阅读全文