科研管理系统 - 图文

更新时间:2024-03-08 11:55:01 阅读量: 综合文库 文档下载

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

郑州轻工业学院

本科毕业设计(论文)

题 目 科研管理系统的研究与实 现——教师权限下的论文管理 学生姓名 专业班级 学 号 院 (系) 计算机与通信工程学院 指导教师(职称) 完成时间 2014 年 5月 22日

郑州轻工业学院

毕业设计(论文)任务书

题目 科研管理系统的研究与实现——教师权限下的论文管理 专业 计算机科学与技术 学号 541007010234 姓名 汤钢建 主要内容、基本要求、主要参考资料等:

主要内容:系统是基于Java Web,运用少量的Struts2框架连接MySQL数据库所

做的科研管理系统,可实现不同权限用户的登录,发表、修改、审核论文以及留言,达到动态管理的目的。

基本要求:1. 科研管理系统各基本功能都能实现。 2.设计严谨、功能完备。 3.界面美观大方,使用方便。

三、主要参考资料:

[1] 李俊青. Java EE Web开发与项目实战[M]. 武汉: 华中科技大学出版社,

2011.11

[2] 钱慎一. Java 程序设计实用教程[M]. 北京: 科学出版社, 2011.09. [3] 杨占胜. JSP Web应用程序开发教程[M]. 西安: 西北工业大学出版社,

2010.08

[4] 唐爱国, 杭志, 王建明. Web 2.0动态网站开发JSP技术详解与应用实践[M].

北京: 清华大学出版社, 2009.

完成期

限: 2014年5月27日 指导教师签名: 专业负责人签名:

年 月 日

科研管理系统的研究与实现——教师权限下的论文管理

目 录

摘 要 ..................................................... I ABSTRACT ................................................. II 1 绪论 ....................................................... 1

1.1 系统背景 .............................................. 1 1.2 科研管理系统现状 ...................................... 1 1.3 本文研究的内容 ........................................ 2 2 开发工具及相关技术介绍 ..................................... 3

2.1开发工具简介 .......................................... 3

2.1.1 MyEclipse ................................................. 3 2.1.2 MySQL ..................................................... 3

2.2相关技术知识 .......................................... 4

2.2.1 Java ...................................................... 4 2.2.2 JSP ....................................................... 5 2.2.3 Spring框架 ................................................ 6 2.2.4 MVC设计模式 ............................................... 7 2.2.5 Strust2框架 ............................................... 8 2.2.6 Hibernate 框架 ............................................ 9

3 需求分析 .................................................. 10

3.1 用户需求分析 ......................................... 10

3.1.1 用户角色图 ............................................... 10 3.1.2 用户参与业务 ............................................. 10 3.1.3 领导用户参与业务 ......................................... 11

3.2 系统需求调研 ......................................... 12 3.3 系统功能需求 ......................................... 12 3.4 系统性能需求 ......................................... 13

科研管理系统的研究与实现——教师权限下的论文管理

3.5 可行性分析 ........................................... 14

3.5.1 经济可行性 ............................................... 14 3.5.2 技术可行性 ............................................... 14 3.5.3 运行可行性 ............................................... 15

4 系统总体设计 .............................................. 16

4.1 系统功能模块设计 ..................................... 16 4.2 系统总流程图 ......................................... 16 4.3 功能模块说明 ......................................... 17 4.4 数据库设计 ........................................... 18

4.4.1 数据库E-R图 ............................................. 19 4.4.2 各个表的实体图 ........................................... 19 4.4.3 数据表详细设计 ........................................... 20 4.4.4 数据库链接池的实现 ....................................... 21

4.5 MVC三层模式的设计与实现 ............................. 22

4.5.1 表示层的设计与实现 ....................................... 22 4.5.2 业务层的设计与实现 ....................................... 23 4.5.3 持久层的设计与实现 ....................................... 23 4.5.4 域模型层的设计与实现 ..................................... 23

5 系统详细设计与实现 ........................................ 25

5.1 运行平台环境 ......................................... 25 5.2 登陆模块的设计与实现 ................................. 25 5.3 教师论文管理模块的设计与实现 ......................... 28

5.3.1 填报个人论文模块的设计与实现 ............................. 28 5.3.2 查看个人论文模块的设计与实现 ............................. 31 5.3.3 搜索所有论文模块的设计与实现 ............................. 33

6 系统的测试与评价 .......................................... 36

6.1 测试目的 ............................................. 36 6.2 系统测试 ............................................. 36

科研管理系统的研究与实现——教师权限下的论文管理

6.3 系统测试步骤 ......................................... 36

6.3.1 登陆模块的测试 ........................................... 37 6.3.2 教师论文填报模块测试 ..................................... 37

6.4 系统评价 ............................................. 39

6.4.1 系统的优点 ............................................... 39 6.4.2 系统存在的不足 ........................................... 39

6.5 测试总结 ............................................. 40 结束语 ...................................................... 41 致谢 ........................................................ 42 参考文献 .................................................... 43

科研管理系统的研究与实现——教师权限下的论文管理

科研管理系统的研究与实现——教师权限下的论文管理

摘 要

科研管理的信息化可以减轻科研管理人员的劳动强度、提高工作效率、节省办公费用,促进高校科研管理进一步条理化、规范化、科学化,提高管理效率。开发使用科研管理系统是科研管理信息化的主要手段。

科研管理系统是在Windows操作系统下,使用java语言进行开发。该系统是以网络为平台,实现信息管理、账户管理、论文管理、留言管理、课题管理、成果管理和统计管理等操作的系统。管理员首先需要添加教师账户,然后可以审批教师提交的论文、课题、成果,教师可以填报个人论文、下载论文、发表留言、申报课题、申报成果等。

使用科研管理系统,可以实现科研工作的网络化管理,形成一个及时更新的科研数据中心和科研管理沟通平台,全面、实时、准确提供学校的有关科研信息,为学校领导有关科研决策提供辅助支持,为学校教师开展科研活动提供方便快捷的服务,为科研管理人员开展工作提供极大的便利。

关键词 Web;科研管理;信息系统

I

科研管理系统的研究与实现——教师权限下的论文管理

THE DESIGN AND IMPLEMENTATION OF THE SCIENTIFIC RESEARCH MANAGEMENT SYSTEM——PAPER MANAGEMENT UNDER THE

PURVIEW OF TEACHEERS

ABSTRACT

Scientific research management information can reduce the labor intensity of scientific research management personnel, improve the work efficiency, save office cost, promote the scientific research management in colleges and universities to further streamline, standardized, scientific, improve the efficiency of management. Development of the use of scientific research management system is a major means of scientific research management information.

Scientific research management system is under the Windows operating system, using Java language development. The system is based on network platform, the realization of information management, account management, paper management, message management, project management, achievement management and statistics management system of the operation. Administrators need to add the first teacher account, which can then be submitted for examination and approval of teachers' thesis, topic, results, teachers can fill his personal papers, download papers, leave a message, declare project, reporting results and so on.

Using scientific research management system, can realize the network management of scientific research work, the formation of an up-to-date scientific research data center and communication platform of scientific research management, comprehensive, real-time and accurate provides scientific information about the school and auxiliary support for the decision of school leadership research, for the school teachers to carry out scientific research activities to provide convenient and quick service, work provides great convenience for scientific research and management personnel.

KEY WORDS Web,Scientific Research Management,System of Information

II

科研管理系统的研究与实现——教师权限下的论文管理

1 绪论

1.1 系统背景

随着科学技术的进步和高校办公管理的发展,科研信息在高校科学研究中的地位和作用越来越重要。高等学校科研建设的不断深入发展,校园网络建设的全面推进和科研力度的进一步加大,科研人员、学科门类、科研项目的数量不断增多,科研成果所涉及的科学领域也越来越广,这些在为高校科研管理带来一定优势的同时也给高校科研管理造成了一定的困难。在当前的形势下,有必要开发适合高等院校使用的科研管理系统,使其能更方便、更有效和更安全地管理各种科研资料和数据,还应具备实时处理的能力,以便提高工作效率和工作质量[1]。高校科研管理系统的开发,其目的是要将先进的管理技术以及计算机技术运用到高校科研管理中来,通过该系统,不但能完成学校科研项目的日常管理工作,还可以及时向各级领导、上级主管部门提供报表、数据信息,为领导的决策提供一定的参考[2]。可见高校科研管理理念和管理模式的开展直接关系到科研事业的发展。

1.2 科研管理系统现状

近年来,随着各个高校科研力度的进一步加大以及信息技术在管理上的广泛应用,旧模式下的科研管理信息系统越来越不能适应新形势下的需求,管理信息系统的实施在技术上已逐步成熟。传统的科研管理方式是通过人工方式进行,记录这些文件文件,不但门类广、种类繁杂,而且格式不统一,管理起来非常繁琐,而且还浪费大量资源,因为科研管理人员和科研工作人员之间缺少必要和及时的沟通,还会造成一些资料和数据丢和不全的情况发生,给正常的教学、科研和管理工作带来了极大的不便,这样的管理方式难以反映高校科研的现状[3]。开发一个高校科研信息管理系统能够实时反映高校的科研活动,为高校科研信息处理和管理职能提供重要支持,这是非常有必要的。

目前,国内外许多高校为了加强科研信息管理、展示科研成果、促进科研信息共享,纷纷在Internet上通过网页形式发布有关科研信息,有的高校还开发了自己的科研信息管理系统。如:北京大学科学研究部通过自己的网站发布最新科研消息,对科研项目,科研成果等进行管理,并提供科研论坛。到目前为止,国内已经有部分高校选择使用计算机所设计的管理系统代替传统的管理方式来管理高校科研信息。过去很长时间,很多高校对科研一直采用传统的手工操作方式,办公效率较低,科研信息闭

1

科研管理系统的研究与实现——教师权限下的论文管理

塞,申报成功率不高,项目的跟踪管理松弛,这样的科研管理已无法满足科研水平提高的内在要求,因此,开发一个完善、快捷、方便的高校科研信息管理系统,刻不容缓。

1.3 本文研究的内容

对系统的可行性和用户需求进行分析,充分了解用户需求,明确系统定位,了解系统需要实现的功能。其次对系统结构进行描述,给出系统流程图以及各子系统流程图,以明确系统的使用过程。最后,详细的介绍系统的代码实现过程,该阶段基于MyEclipse开发平台进行开发。

本系统主要功能如下:

(1)为高校科研参与者提供快捷方便的管理途径。

(2)实现对科研信息的管理:管理员可以对教师和学生的科研信息进行管理,对科研项目类别和科研成果类型进行添加、修改、删除等操作。

(3)提供高效的数据库实施方案,对科研信息进行科学的分类,并提供各种类别的搜索形式,方便对科研信息进行查询。

2

科研管理系统的研究与实现——教师权限下的论文管理

2 开发工具及相关技术介绍

2.1 开发工具简介

2.1.1 MyEclipse

MyEclipse[4]企业级工作平台(MyEclipse Enterprise Workbench,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE[5]的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。

MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能[6]。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

根据官方最新消息,MyEclipse 2013已经正式发布。MyEclipse 2013支持HTML5、JQuery和主流的Javascript 库。随着MyEclipse 2013支持Html5,可以添加音频、视频和API元素到项目中,从而为移动设备创建复杂的Web应用程序。甚至还可以通过HTML5可视化设计器设计令人难以置信的用户界面。同时,随着MyEclipse 2013支持JQuery,可以通过插件提升性能,并添加动画效果到设计中。

2.1.2 MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

MySQL数据库的特点有如下几点[7]:

3

科研管理系统的研究与实现——教师权限下的论文管理

(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。 (2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。

(3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

(4)支持多线程,充分利用CPU资源。

(5)优化的SQL查询算法,有效地提高查询速度。

(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

(7)提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

(8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 (9)提供用于管理、检查、优化数据库操作的管理工具。

(10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 (11)支持多种存储引擎。

(12)Mysql是开源的,所以你不需要支付额外的费用。 (13)MySQL使用标准的SQL数据语言形式。

(14)Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。 (15)Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

2.2 相关技术知识

2.2.1 Java

Java[8]是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE、JavaEE、JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

Java平台由Java虚拟机(Java Virtual Machine,简称JVM)和Java 应用编程接口

4

科研管理系统的研究与实现——教师权限下的论文管理

(Application Programming Interface,简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。

Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),

JavaEE(Java 2 Platform Enterprise Edition,java平台企业版),JavaME(Java 2 Platform

Micro Edition,java平台微型版)。

Java编程语言的风格十分接近C、C++语言。Java是一个纯粹的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性[8],增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码

编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。

2.2.2 JSP

J S P是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。

JSP全名为Java Server Pages[9],其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页

5

科研管理系统的研究与实现——教师权限下的论文管理

等,以实现建立动态网页所需要的功能。

通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。

JSP技术使用Java编程语言编写类XML[10]的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点[11]。

自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。

2.2.3 Spring框架

Spring[12]是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 ◆范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring

6

科研管理系统的研究与实现——教师权限下的论文管理

的特定类。

◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

◆MVC——Spring的作用是整合,但不仅仅限于整合,Spring 框架可以被看做是一个企业解决方案级别的框架。客户端发送请求,服务器控制器(由DispatcherServlet实现的)完成请求的转发,控制器调用一个用于映射的类HandlerMapping,该类用于将请求映射到对应的处理器来处理请求。HandlerMapping 将请求映射到对应的处理器Controller(相当于Action)在Spring 当中如果写一些处理器组件,一般实现Controller 接口,在Controller 中就可以调用一些Service 或DAO 来进行数据操作 ModelAndView 用于存放从DAO 中取出的数据,还可以存放响应视图的一些数据。 如果想将处理结果返回给用户,那么在Spring 框架中还提供一个视图组件ViewResolver,该组件根据Controller 返回的标示,找到对应的视图,将响应response 返回给用户。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

2.2.4 MVC设计模式

MVC[13]开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则

7

科研管理系统的研究与实现——教师权限下的论文管理

是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。

2.2.5 Strust2框架

struts2并不是一个陌生的web框架,它是以Webwork的设计思想为核心,吸收struts1的优点,可以说struts2是struts1和Webwork结合的产物。

一个请求在Struts2框架中的处理分为以下几个步骤[14]: (1)客户端发出一个指向servlet容器的请求(tomcat);

(2)这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。 (3)过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。

如:ConfigurationManager、ActionMapper

ObjectFactory。

ConfigurationManager 存有配置文件的一些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。过滤器会通过询问ActionMapper类来查找请求中 需要用到的Action。

(4)如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action的代理对象。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

(5)ActionProxy创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了 Action的执行状态,或者说它控制的Action的执行步骤。它持有Action实例和所有的Interceptor。

(6)ActionInvocation实例使用命名模式来调用,1. ActionInvocation初始化时,根据配置,加载Action相 关的所有Interceptor。2. 通过ActionInvocation.invoke方法调

8

科研管理系统的研究与实现——教师权限下的论文管理

用Action实现时,执行Interceptor。在调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。

(7) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。

2.2.6 Hibernate 框架

Hibernate基于的思想就是ORM(Object Relation Mapping)[15]。我们在实际的开发的时候遇到的很多的数据库都是一些基于面向对象的设计的,比如ORACLE、MYSQL、SQL SERVER等等,我们的java也是一个面向对象的思想的。Hibernate是为Java设计的轻量级对象关系映射服务。这就是说,Hibernate可以让你用普通的Java对象的形式来简洁而有效地处理关系数据库中的信息。那么数据库中的一个单独的数据库可以对应于我们的java进行web开发项目的一部分,其中的一个数据库中的一个数据表可以对应于我们的java的一个单独的po(Persistent Object)类,数据库中表与表之间的一对一、一对多、多对多关系,在java中也有类似聚合,依赖、关联的关系,这也就为我们的java项目的开发和关系型的数据库提供了一个比较的相似的地方。而ORM正是基于这样的一个通道实现的一个数据库和java中的类的关系的映射。

在进行小型的项目开发的时候,或者是一些对于项目的管理比较的严格而对于项目开发中的性能要求不是太高的时候,我们使用Hibernate进行项目的开发实现数据库的操作,是一个极好的例子。

在使用Hibernate的时候我们会很自然的遇到下面的一些对象:Configuration是一个负责管理数据库的配置信息的;Session factory是一个针对单个数据库映射关系经过编译之后的内存的镜像,他是一个线程比较的安全的;Session创建的是一个单线程的对象,其中隐藏了对于JDBC的操作。

9

科研管理系统的研究与实现——教师权限下的论文管理

3 需求分析

3.1 用户需求分析

3.1.1 用户角色图

本系统中设计的角色如图3-1所示。

用户 领导用户 教师用户 图3-1用户角色图

角色说明:

(1)教师用户:这是本系统的基本的角色,它基于的就是一个普通用户的级别。在本系统中,它可以实现进行系统的登录、个人论文填报、论文查看查看、个人信息维护等的操作

(2)领导用户:这是本系统中的高级操作员,他在本系统中可以进行用户管理,可以实现用户的注册,可以实现对论文的审批等操作。

3.1.2 用户参与业务

教师用户涉及到的业务用例图如图3-2所示。

10

科研管理系统的研究与实现——教师权限下的论文管理

留言管理 个人信息维护 登陆 查看论文 教师用户 添报论文 修改论文

图 3-2教师用例图

教师用户可以进行的是系统的登录操作,实现合法的登录。登录以后的用户可以进行论文的填报、修改和查询,进行个人的信息维护,留言等操作。

3.1.3 领导用户参与业务

领导用户涉及到的业务用例图如图3-3所示。

用户管理 登陆 个人信息维护 查看论文 填报论文 领导用户 留言管理 论文审批 修改论文

图3-3领导用例图

领导用户在参与的业务中是在教师用户的角色之上的。用户在进行系统的登录以后,可以看到自己的权限的级别是大于教师用户的,在其可操作的业务范围中,除了

11

科研管理系统的研究与实现——教师权限下的论文管理

那些基本的业务外,领导用户还可以实现进行用户的注册管理,论文审批等操作的信息。

3.2 系统需求调研

为了能够获得详细、准确的系统需求,在高校科研管理系统进行设计编码之前,对系统进行需求分析调研,是非常必要的。

在需求调研初期,开发人员组织会议,定义需求开发过程,将如何获取和分析其需求、编写规格说明和验证需求步骤确定下来,并确定项目前景和项目范围,同时联系并详细询问客户(即提出项目的科研工作部以及相关老师),确定项目业务需求。

确定好了业务需求,开发人员进一步展开调研,详细考察高校科研管理人员的工作流程和工作细节,与管理人员展开交谈,了解需求功能点,并初步划分系统模块并且对一些典型模块进行用例分析,以确定项目的用户需求。

最后,开发人员再次组织会议,对系统需求进行详细探讨,准确定义,对一些功能点开发出用户界面和功能原型,同时,编写软件需求说明文档(SRS),精确定义系统功能需求。结束系统需求分析阶段。

3.3 系统功能需求

通过本系统,解决人工系统人员多,效率低、易出错的缺陷,可以减少不必要的资源浪费,使得人员办事效率得以提高。高校科研信息管理设计的主要目标如下:

系统设置3种不同的用户身份及管理权限:管理员、领导、教师。具有以下模块 (1)信息管理

信息管理模块提供了登录用户查看个人信息和修改个人信息的功能。 (2)账户管理

账户管理模块提供领导添加教师账户,领导删除教师账户和领导查看教师账户,但不能查看教师账户的密码。账户管理模块还提供了超级管理员添加教师或领导账户,删除教师或领导账户和查看教师和领导账户的信息,而且超级管理员可以看到教师或领导的账户密码。如果某个教师或领导忘记了密码,就可以找超级管理员去查看自己的密码。

(3)论文管理

论文管理模块提供了用户填报个人论文的功能,用户根据论文的填报的要求填写相关信息之后,将会自动提交给系统,论文管理包括:填报个人论文、查看个人论文、

12

科研管理系统的研究与实现——教师权限下的论文管理

检索论文、论文查询审批四个基本的子模块。

填报个人论文:教师用户不但可以填报与自己论文相关属性信息,还能将自己的论文以word文档的形式上传到服务器。

查看个人论文:用于用户查看自己以前填报的论文,还能查看自己的论文是否通过上级领导的审核,另外本子模块还能实现查看自己论文的论文详情,还能下载自己以前上传的论文和删除自己上传错的论文或自己认为已经过时的个人论文。

论文查询审批:领导可以查看所有还未通过审核的论文,本子模块还能实现查看未通过审核的论文详情,还能下载未通过审核的论文,用来供领导查看未通过审核的论文,并供领导判断该论文是否能通过审核。

搜索论文:用户可以根据论文的作者,年份,主题或检索类型进行检索已经通过上级领导审核的论文。

(4)留言管理

留言管理模块提供了用户发表留言的功能,用户根据留言的发表要求填写相关信息之后,将会自动提交给系统,留言管理包括:发表留言、查看留言、删除留言三个基本的子模块。

发表留言:教师,领导和超级管理员都能够发表自己的留言,留言的内容可以是多样的,用户不但能留言文字,还能设置文字的大小,颜色,是否加粗,是否加下划线等等,用户还能将自己认为比较好的图片作为留言内容,另外用户还能将自己认为比较好的视频作为留言内容。

查看留言:用户可以查看所有用户的留言内容,包括留言的文字或留言的图片,或者留言的视频等。

删除留言:教师用户只能删除自己的留言,领导可以删除所有教师用户的留言,超级管理员可以删除教师和领导的留言。

3.4 系统性能需求

从实用、好用的角度出发开发高校科研管理信息系统,在设计过程中主要考虑以下原则:

(1) 可操作性

原始信息皆由教师录入,系统应尽量减少教师的数据录入量,录入数据尽量通过设计下拉列表框来选择录入,这样的处理同时也避免了许多录入异常现象的发生。数据输入的格式应符合业务习惯,并且直观、方便。要求系统处理的数据能准确无误,

13

科研管理系统的研究与实现——教师权限下的论文管理

求。

建立信息管理系统,需要以数据库为核心。根据高校科研管理系统的实际要求,本系统主要设计为3张数据库表,分别为用户信息表、论文信息表、留言信息表。

4.4.1 数据库E-R图

科研管理系统,在本软件中体现出来的实体不算是太多。本系统总体E-R图如图4-3所示。

领导 1 m 科研 审批 n 论文 n 1 教师 上传 n 图4-3系统总体E-R图

4.4.2 各个表的实体图

(1)用户信息实体包含的属性有:账号、姓名、身份、密码。其实体图如图4-4所示。

账号 姓名 用户信息 密码 身份

图4-4 教师信息实体图

(2)论文信息实体包含的属性有:题目、年份、纵向、类别、鉴定、专利、作者、横向和获奖。论文信息实体图如图4-5所示。

19

科研管理系统的研究与实现——教师权限下的论文管理

题目 获奖 年份 纵向 论文信息 横向 作者 专利 鉴定 类别

图4-5 学生信息实体图

(3)留言信息实体包含的属性有:主题、时间、内容和发表人。留言信息实体图如图4-6所

示。

时间 科研信息 主题 内容 发表人 图4-6 科研信息实体图

4.4.3 数据表详细设计

通过对数据库的需求分析,得出科研管理系统所用到的数据库表。

超级管理员添加的领导用户或教师用户的信息全都保存在表user_db,如表4-1所示。

表4-1 用户信息表user_db

字段名称 userId userNo userPassword useridentityId userPhone 字段类型 int varchar varchar varchar varchar 是否为空 not null not null not null not null 字段含义 用户编号 用户工号 用户密码 用户身份 用户手机 是否主外键 主键 论文信息都保存在paper_tab,如表4-2所示。 20

科研管理系统的研究与实现——教师权限下的论文管理

表4-2 论文信息表 paper_tab

字段名称 paperId paperTitle paperType paperIdentify paperReward paperWork paperZX paperHX paperWriter paperTime paperPatent 字段类型 Int Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar 是否为空 not null not null not null not null not null 字段含义 论文编号 论文标题 论文类型 论文鉴定 论文获奖 论文专利 审批结果 论文纵向 论文横向 教师编号 填报时间 是否主外键 主键 所有用户的留言信息都保存在表ly_tab,如表4-3所示。 表4-3 留言信息表 ly_tab

字段名称 lyId lyName lyTitle lyContent lyTime 字段类型 varchar varchar varchar varchar varchar 是否为空 not null not null not null not null not null 字段含义 留言编号 教师编号 留言主题 留言内容 留言时间 是否主外键 主键 4.4.4 数据库链接池的实现 高校科研管理系统中的大量数据都是通过数据库进行存储和管理的,所以系统使用过程中需要频繁的访问数据库。通过常规方法访问数据库,首先需要创建数据库连接,使用完以后还需要关闭连接。对于Web应用而言,如果大量用户频繁访问数据库,频繁的创建和关闭数据库连接将会大大降低系统的性能,成为系统的瓶颈。为了有效解决这个问题,系统可以使用数据库连接池以提高数据库访问的性能和效率。数据库连接池的核心就是连接复用,通过缓存与数据库的连接,减少连接的建立次数。当需要访问数据库时,直接从缓存的连接中获取一个连接提供给用户使用,从而减少了因建立数据库连接而需要的时间开销。这个数据库连接的缓存就称为数据库连接池。

首先,在WEB一INF目录下中创建文件hibernate.cfg. xml,代码如下:

21

科研管理系统的研究与实现——教师权限下的论文管理

然后,系统运行后会自动加载并读取hibernate.cfg. xml配置文件,从hibernate.cfg.xm文件中读取数据库连接的基本信息,还能读取多个对象关系映射的子配置文件,从对象关系映射的配置文件中读取对象关系映射的基本信息,创建对象关系映射。然后创建持久化类。最后通过Hibernate API编写访问数据库的代码。

4.5 MVC 三层模式的设计与实现

4.5.1 表示层的设计与实现

基于Web的应用面向用户的部分就是表示层,它的主要职责包括:管理用户的请求,并做出响应:提供一个控制器,将页面的请求委派给其它层进行处理;为显示提供业务模型数据,系统使用Struts2框架实现表示层。在表示层,控制器的功能由ActionServlet和Action实现:ActionServlet负责接收客户端的请求,ActionMapping实现一个客户端请求到一个具体的Action之间的映射;视图由JSP页面结合Struts2标签实现,Action对象调用业务逻辑模块,并把响应结果提交到合适的视图组件进行显示,ActionSupport对象完成对客户端页面表单数据的封装,实现视图和模型之间的支持交互。下面以科研管理系统的填报个人论文模块为例,进行详细说明。

(1)视图:使用JSP标签技术建立与科研管理系统用户的交互界面。以教师提交教师个人论文信息页面为例,提供了一个填报个人论文页面的表单Form,实现教师向系统提交自己论文信息的功能。

(2)控制器: 科研管理系统中教师用户的

URL

请求

\”将被Struts2的控制器ActionServlet接收,然后通过查找struts.xml配置文件来决定该请求将被哪个Action处理。struts.xml建立了控制器

22

科研管理系统的研究与实现——教师权限下的论文管理

和模型之间的联系,定义了教师用户的输入数据与ActionSupport组件的对应映射关系。

(3)模型:表示层中的模型部分包括ActionSupport、实体对象模型等。以paperAction为例,paperAction是比较简单的JavaBean,与writePaper. jsp文件对应,继承Struts2框架中ActionSupport类。

4.5.2 业务层的设计与实现

业务层的主要功能是处理具体应用的业务逻辑,向表示层传递信息,根据需要实现对数据的访问和修改。在Spring的配置文件即aplicationContext.xml中进行相关配置。主要有数据源配置;把数据源注入给Hibernate的SessionFactory;声明式事务管理配置;把SessionFactory注入给DAO;把DAO注入给Service;把Service注入给Action。当Action需要处理一些科研管理业务逻辑的时候,例如填报个人论文时,就可以调用paperAction类中所设计的writePaperValue()方法实现数据库的添加操作。

4.5.3 持久层的设计与实现

数据持久层主要完成对数据源的操纵。持久层使用数据访问对象(DAO)来抽象和封装所有对数据源的访问,DAO管理着与数据源的连接以便于检索和存储数据,实现了用来操作数据源的访问机制,内部包含对Hibernate中数据操纵、事务处理、会话管理等API的封装。DAO实现了将数据源的操纵与业务逻辑层的分离,为业务逻辑层提供面向对象的数据访问接口,DAO完全隐藏了数据源操纵的细节。当低层数据源的操纵发生变化时,由于DAO向上层提供的接口不会变化,所以业务逻辑层不需要任何改变。

HibernateTemplate对Hibernate Session操作进行了封装,它提供了非常多的常用方法来完成基本的操作,比如增加、删除、修改、查询等。HibrnateTemplate .execute方法则是这一封装机制的核心。借助HibernateTemplate我们可以脱离每次操作数据必须首先获得Session实例、启动事务、提交/回滚事务以及其它一些繁琐的操作。

4.5.4 域模型层的设计与实现

在基于Hibernate的持久层解决方案中,域模型层主要包括一个与数据库表对应的持久化对象(Persistent Object,简称PO)和一个将数据库表与PO连接起来的映射描述文件。通过0/R映射描述文件,告诉Hibernate数据库表与持久化对象的对应关系,然后开发人员就能以对象的形式获取数据库中的数据,或者把对象保存到数据库。运

23

科研管理系统的研究与实现——教师权限下的论文管理

行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在科研管理系统的开发过程中,可以使用MyEclipse提供的插件自动完成上述两项工作。通过MyEclipse自动生成持久化对象和映射文件,只需要再对它们进行一些简单的设置即可,从而大大的提高了开发效率。

(1)持久化对象:是介于具体应用和数据库之间的一层数据,负责应用和数据库之间的交互。持久化对象用来维护数据库表的记录,它是一个完全符合Java Bean规范的纯Java对象,属性通过getter和setter方法访问,对外隐藏了内部实现的细节。 (2)映射描述文件:Hibernate通过映射文件Paper. hbm. xml建立Paper对象与数据库表paper_tab的关联,并且把对持久化对象的操作转化为对数据库表的操作。

24

科研管理系统的研究与实现——教师权限下的论文管理

5 系统详细设计与实现

5.1 运行平台环境

5.1.1 硬件平台

(1) CPU:双核至强CPU,主频3600 MHz,总线频率800 MHz; (2) 内存:4G; (3) 硬盘:500G; (4) 显示器:19英寸。

5.1.2 软件平台

(1) 操作系统:Windows 7; (2) 数据库:MySQL Server5.1; (3) Java开发工具包:JDK 1.6.0; (4) Web服务器:Tomcat7.0;

(5) Java开发集成工具:MyEclipse10.0GA; (6) 浏览器:IE11;

(7) 分辨率:最佳效果为1440*900。

5.2 登陆模块的设计与实现

此科研管理系统由MyEclipse工具开发,运用Struts2框架,MVC设计模式开发而成。此系统有3种不同的权限,管理员,领导和教师的权限,其中管理员拥有最高权限,可以注册若干领导和教师,领导也可以注册多个教师。

在系统运行时首先输入用户名和密码。用户分为管理员、领导、教师,如果用户名和密码正确会进入系统页面,根据权限不同,登录后可操作的功能也有所不同。科研管理系统用户登录流程图如图5-1所示。

25

科研管理系统的研究与实现——教师权限下的论文管理

开始 用户名、密码 身份验证 Y 主界面 N 结束

图5-1 登陆系统流程图

用户进入网站输入本站网址http://localhost:8080/Struts_06_01 /user/login.jsp首先看的的是登陆面如图5-2所示。

图5-2

在系统中有内置管理员admin,通过超级管理员admin登陆进入系统的主界面如图5-3所示。

26

科研管理系统的研究与实现——教师权限下的论文管理

图5-3系统主界面

主界面实现的核心代码 Main.jsp

<%@ page language=\

郑州轻工业学院科研管理系统

27

科研管理系统的研究与实现——教师权限下的论文管理

5.3 教师论文管理模块的设计与实现

本模块为教师论文管理模块,分为查看个人论文、论文填报流程、填报跟人论文和搜索所有论文四个功能模块。在系统运行时教师首先输入用户名和密码。如果用户名和密码正确会进入相应的教师模块主页面,进行相应的论文管理。科研管理系统教师用户登录流程图如图5-4所示。

开始 输入账号密码 否 判断是否正确 是 教师人员模块主界面 论文信息输入、上传、修改、查看 结束

图5-4 教师模块流程图

5.3.1 填报个人论文模块的设计与实现

教师进入相应的模块后可以进行填报自己的论文,输入论文信息,选择需要上传的文件如图5-5所示,当信息填写完成后单击提交按钮,如果成功后会进入查看个人论文信息模块如图5-6所示。

28

科研管理系统的研究与实现——教师权限下的论文管理

图5-5填报论文界面

图5-6查看论文界面

对论文填报操作需要执行以下流程:

添加论文信息:教师首先需要输入添加论文的各种基本信息。输入完整信息后,将把数据插入到数据库中,如果添加数据信息完整,系统就进入选择上传文件模块,插入信息不完整需要重新添加。教师论文填报流程图如图5-7所示。

29

科研管理系统的研究与实现——教师权限下的论文管理

开始 论文基本信息 N 信息是否完整 Y 选择上传文件 N 上传是否成功 Y 提交 结束

图5-7 教师论文填报流程图

关键实现代码 $(function(){

$(\ $(\ })

$(\ var $input=$(\ var len=$input.length; for(var i=0;i

30

科研管理系统的研究与实现——教师权限下的论文管理

alert(\文本框不能为空!\ return false; } }

$(\ });

$(\

});

changeMonth: true, changeYear: true

})

5.3.2 查看个人论文模块的设计与实现

在这个功能模块中教师可以教师可以进行查看论文详情、下载论文和删除个人论文等操作。具体实现如图5-8 、图5-9、图5-10所示。

图5-8查看个人论文

图5-9 查看论文详情

31

科研管理系统的研究与实现——教师权限下的论文管理

图5-10删除论文

具体代码实现

$(document).ready(function() {

} );

$('#example').dataTable( { } );

\

32

科研管理系统的研究与实现——教师权限下的论文管理

5.3.3 搜索所有论文模块的设计与实现

搜索所有论文管理模块主要是实现论文查询的功能模块。论文查询是通过设置时间点,对上传的文件进行管理和统计。在论文搜索中可以按多种条件进行搜索,可以按上传时间、作者、课题类型、主题名称等进行搜索。搜索论文管理模块设计如图5-11所示。

图5-11搜索论文界面

本模块不仅可以对所有论文进行搜索查询,还可以将你所搜索到的论文进行下载。论文下载界面如图5-12所示。

图 5-12 论文下载

在搜索论文的过程中,选择相应条件查询。如若查询的条件不存在则查询结果为空白。科研课题查询流程如下:用户首先进入显示页面,在条件列表中选择搜索条件及搜索信息,如果找到显示详细的论文信息并将信息以表单形式导出,如果没有查找

33

科研管理系统的研究与实现——教师权限下的论文管理

到则显示空白。搜索论文模块流程图如图5-13所示。

开始 选择查找条件 查找数据库相关信息 Y 找到满足条件的记录 N 显示查找信息 没有符合信息 结束

图5-13 搜索论文模块流程图

关键代码实现

Top