日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于java的科研信息管理平台

發(fā)布時間:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于java的科研信息管理平台 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎添加微信互相交流學(xué)習(xí)哦!

項(xiàng)目源碼:https://gitee.com/oklongmm/biye

摘要:隨著計算機(jī)應(yīng)用水平的提高和科研管理的規(guī)范化和制度化,建立一套適用于高校科研管理工作管理信息系統(tǒng),已經(jīng)成為各大高校較為迫切的需求。科研信息管理平臺主要實(shí)現(xiàn)對高校科研情況的有效管理以及對科研活動的全程跟蹤。通過科研管理信息化平臺,可以實(shí)現(xiàn)科研工作的網(wǎng)絡(luò)化管理,形成一個及時更新的科研數(shù)據(jù)中心和科研管理溝通平臺,全面、實(shí)時、準(zhǔn)確提供學(xué)校的有關(guān)科研信息,為學(xué)校領(lǐng)導(dǎo)有關(guān)科研決策提供輔助支持,為學(xué)校教師開展科研活動提供方便快捷的服務(wù),為科研管理人員開展工作提供極大的便利。科研信息管理平臺以科研項(xiàng)目管理為中心,包括人員檔案、成果管理、設(shè)備管理、項(xiàng)目申報、科研評估等多項(xiàng)信息管理職能,涵蓋計劃、合同、成果、專利、資金、人員、設(shè)備等方面,提供科研信息維護(hù)、科研信息查詢與統(tǒng)計、設(shè)備日常管理和維護(hù)、校級課題申報、審批、合同簽定、結(jié)題、其它處理等操作。
本系統(tǒng)是根據(jù)目前網(wǎng)絡(luò)開發(fā)中流行的MVC軟件工程思想,采用struts框架,通過JSP實(shí)現(xiàn)的B/S模式結(jié)構(gòu)的信息平臺。成功實(shí)現(xiàn)了WEB系統(tǒng)開發(fā)的M-V-C的分離,提高了系統(tǒng)開發(fā)的效率,為以后系統(tǒng)的維護(hù)和擴(kuò)展帶來了方便。系統(tǒng)信息資源通過SQL SERVER數(shù)據(jù)庫進(jìn)行管理,經(jīng)由 TOMCAT服務(wù)器對外發(fā)布,實(shí)現(xiàn)了科研信息的發(fā)布和維護(hù),人員基本信息的管理和注冊,設(shè)備信息的管理,項(xiàng)目的申報、審批、結(jié)題、鑒定等一系列功能。

關(guān)鍵詞:JSP ?MVC ?Struts ?科研管理 ?項(xiàng)目管理


Management Information System of Scientific Research Based On MVC
? ? ? ? ? Student name: ? ? ? ? ?Class:05806101
Supervisor:
Abstract: Along with calculator application level of exaltation and research management of the norm turn with systemize, establishment 1 set be applicable to a university research management work management information system, have already become each university more urgent of need. Management information system of scientific research mainly realize scientific research in colleges and universities,as well as realize the management of research activities on track. Management information through scientific research platform, you can achieve the network-based research management, a timely update of the scientific research and scientific management of data center communication platform, a comprehensive, real-time, providing accurate scientific information on schools. For school leaders on the scientific research to support decision-making aids for school teachers to carry out research to provide convenient and efficient service, for research managers to work to provide a great convenience. Management information system of scientific research to manage research projects as the center, including personnel files, results-based management, equipment management, project reporting, scientific research to assess a wide range of information management functions, covering the planning, contracting, results, patents, capital, personnel, equipment, etc., to provide scientific information to maintain, research and statistical information, equipment management and maintenance of day-to-day, colonel issue declaration, examination and approval, contract signing, finished, and other processing operations.?? ?
According to the current popular thinking of the MVC software engineering, the system use struts framework, and through JSP achieved the B / S model of the structure of the information platform. The M-V-C separation of the WEB system development has successfully realized. Enhanced the system development efficiency and for the system test, as well as the later maintenance and the expansion is convenient. The system information resource database carries on the management through the SQL SERVER ,by way of TOMCAT server foreign issue. The realization of the scientific information, and maintenance, management of basic information and registration, equipment, information management, project reporting, approved and finished, to identify a series of functions.

Key Words: JSP ?MVC ?Struts ?management of scientific research ?project management

?
?

目錄
畢業(yè)設(shè)計(論文)?? ?1
摘要?? ?2
Abstract?? ?3
1 前言?? ?5
1.1科研信息管理系統(tǒng)的介紹?? ?5
1.2科研信息管理系統(tǒng)的特點(diǎn)?? ?5
1.3 關(guān)于本課題?? ?5
2 相關(guān)技術(shù)介紹?? ?5
2.1 開發(fā)平臺?? ?5
? ?2.1.1 ?Myeclipse?? ?5
? ?2.1.2 ?TOMCAT?? ?5
? ?2.1.3 ?JDK?? ?5
2.2 開發(fā)技術(shù)?? ?5
? ?2.2.1 ?JSP?? ?5
? ?2.2.2 ?MVC?? ?5
? ?2.2.3 ?Struts?? ?5
3 需求分析?? ?5
3.1 功能需求?? ?5
? ?3.1.1 ?人員管理模塊?? ?5
? ?3.1.2 ?論文管理模塊?? ?5
? ?3.1.3 ?著作管理模塊?? ?5
? ?3.1.4 ?科研項(xiàng)目管理模塊?? ?5
? ?3.1.5 ?設(shè)備管理模塊?? ?5
3.2 運(yùn)行環(huán)境需求?? ?5
? ?3.2.1 ?系統(tǒng)軟件環(huán)境的建議配置?? ?5
? ?3.2.2 ?系統(tǒng)硬件環(huán)境的建議配置?? ?5
3.3 界面設(shè)計?? ?5
? ?3.3.1 ?界面操作需求?? ?5
? ?3.3.2 ?界面功能需求?? ?5
4 數(shù)據(jù)庫設(shè)計?? ?5
4.1 ?概念結(jié)構(gòu)設(shè)計?? ?5
4.2 ?邏輯結(jié)構(gòu)設(shè)計?? ?5
4.3 ?數(shù)據(jù)庫實(shí)施?? ?5
5系統(tǒng)實(shí)現(xiàn)?? ?5
5.1 ?數(shù)據(jù)庫的連接?? ?5
5.2 ?數(shù)據(jù)庫操作的實(shí)現(xiàn)?? ?27
5.3 ?功能模塊的實(shí)現(xiàn)?? ?29
5.4 ?系統(tǒng)安全?? ?33
6 總結(jié)?? ?5
7 參考文獻(xiàn)?? ?5
8 致 ?謝?? ?36

?
1 前言
1.1科研信息管理系統(tǒng)的介紹
當(dāng)今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)環(huán)境原因。計算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。
高校的科研水平和科研規(guī)模日益成為反映高校綜合實(shí)力的重要指標(biāo)。隨著國家對高校科研的投入不斷增加,各高校也越來越重視自身的科研管理。每年高校在科研活動中產(chǎn)生的論文、著作、專利、項(xiàng)目、獲獎等科研管理數(shù)據(jù)不斷變得龐大。傳統(tǒng)的依賴手工或者借助Excel等辦公軟件所進(jìn)行的科研管理變得日益艱難。以往,科研人員對文章、文件處理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于科研人員的基本情況的記錄往往采用手工的記錄來進(jìn)行,對科研信息的處理也是通過人工計算、統(tǒng)計、查詢、手抄等來進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找。總的來說,缺乏系統(tǒng)、規(guī)范的信息管理手段。盡管有的高校里有計算機(jī),但是都是獨(dú)自為體,尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,于是高校科研管理的信息化建設(shè)被提高了日程上來。
科研活動是高校一項(xiàng)非常活躍的內(nèi)容。科研與教學(xué)工作向來是相輔相成的,以科研促教學(xué),以科研拉動學(xué)校、學(xué)科的發(fā)展已成為高等院校辦學(xué)的一項(xiàng)基本戰(zhàn)略,它體現(xiàn)了高校發(fā)展的綜合實(shí)力。因此,科研管理信息化是高校管理信息化的重要組成部分。
顯然,需要有一套行之有效的手段來對高校的科研項(xiàng)目及發(fā)表論文進(jìn)行管理。到目前為止,高校的科研管理一直采用人工管理的方式,并無一套成文的管理規(guī)范,也沒有相應(yīng)的專職管理人員,只有當(dāng)上級部門發(fā)文要求統(tǒng)計項(xiàng)目或論文情況時才由有關(guān)人員查閱本校的各種相關(guān)文檔,人工進(jìn)行統(tǒng)計并制作報表。這種落后管理的弊端是顯而易見的。高校科研管理系統(tǒng)優(yōu)化科研環(huán)境和資源配置,使科研成本最小而效益最大化,從而提高科研實(shí)力和競爭力,培養(yǎng)高層次人才,服務(wù)社會經(jīng)濟(jì)發(fā)展。
高校科研管理信息系統(tǒng)通常包括科研人員信息管理、科研項(xiàng)目管理、科研成果管理、學(xué)術(shù)交流管理、業(yè)績考核管理等,實(shí)現(xiàn)系統(tǒng)性、關(guān)聯(lián)性、即時性、針對性等特點(diǎn)。為用戶提供針對各項(xiàng)目進(jìn)行管理的操作,提高了信息檢索的效率,實(shí)現(xiàn)靈活的查詢;減輕管理人員手工制作報表、統(tǒng)計分析的負(fù)擔(dān);提高了高校管理科研管理的效率。它將有助于管理人員從煩瑣的管理工作中解脫出來,使管理系統(tǒng)化、條理化,能迅速獲得感興趣的信息,從而提高管理水平。
1.2科研信息管理系統(tǒng)的特點(diǎn)
1、基于Struts模式下的WEB信息系統(tǒng),具有良好的可擴(kuò)展性,以滿足將來管理系統(tǒng)的發(fā)展需求。
2、廣泛的科研資源信息共享,為用戶提供高效、簡便的電子化辦公,足不出戶便可查閱信息,實(shí)時了解科研情況。
3、需要大量的處理信息資源,包含很多的信息數(shù)據(jù)的管理,同時對科研信息進(jìn)行計算、統(tǒng)計和查詢。
4、具有較高的安全性和易維護(hù)性。
1.3 關(guān)于本課題
本系統(tǒng)主要包括以下幾個功能模塊:人員管理、著作管理、論文管理、項(xiàng)目管理、設(shè)備管理。用戶和管理員成功登錄后,根據(jù)相應(yīng)的權(quán)限,進(jìn)行數(shù)據(jù)的錄入、刪除及更新,錄入和更新時包括對數(shù)據(jù)的正確性校驗(yàn);據(jù)各種查詢條件進(jìn)行模糊查詢;任意一個業(yè)務(wù)成功辦理以后,系統(tǒng)會提示業(yè)務(wù)辦理成功。
?
圖1 ?科研信息管理功能結(jié)構(gòu)圖
2 相關(guān)技術(shù)介紹
2.1 開發(fā)平臺
2.1.1 ?MyEclipse
MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。
在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:
?1. J2EE模型
?2. WEB開發(fā)工具
?3. EJB開發(fā)工具
?4. 應(yīng)用程序服務(wù)器的連接器
?5. J2EE項(xiàng)目部署服務(wù)
?6. 數(shù)據(jù)庫服務(wù)
?7. MyEclipse整合幫助
? ? 對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。
簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。MyEclipse是一個專門為Eclipse設(shè)計的商業(yè)插件和開源插件的完美結(jié)合,MyEclipse為Eclipse提供了一個大量私有和開源的Java工具的集合,很大程度上解決了各種開源工具的不一致和缺點(diǎn)問題,并大大提高了Java和JSP應(yīng)用開發(fā)的效率。MyEclipse的實(shí)際價值來自其發(fā)布的大量的可視化開發(fā)工具和實(shí)用組件。
2.1.2 ?TOMCAT
Tomcat是Sun的JSWDK(JavaServer Web Development Kit)中Servlet的運(yùn)行環(huán)境(servlet容器),Tomcat是一個JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基礎(chǔ)上發(fā)展起來的一個JSP和Servlet規(guī)范的標(biāo)準(zhǔn)實(shí)現(xiàn),使用Tomcat可以體驗(yàn)JSP和Servlet的最新規(guī)范。Tomcat 服務(wù)器是一個免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,可以和大部分主流HTTP服務(wù)器一起工作,它是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個核心項(xiàng)目,由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn)。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。
? ? ?Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。
? ? ?Tomcat服務(wù)器不但支持運(yùn)行Servlet和JSP而且還具備了作為商業(yè)Java Web應(yīng)用容器的特征,除了能夠運(yùn)行Servlet和JSP外,還具備了作為WEB服務(wù)器的特有功能。
? ? ?Servlet容器它是一個組件,這個組件運(yùn)行在服務(wù)器上(運(yùn)行在服務(wù)器上做什么?常見的是擴(kuò)展此服務(wù)器的功能,提供CGI替代品),并且這個服務(wù)器支持JAVA語言,Servlet容器是一個動態(tài)加載的模塊,為WEB客戶請求提供服務(wù)。Tomcat作為Servlet容器,它就成了WEB客戶和Servlet兩者中間的橋,即:Tomcat把客戶請求,傳給Servlet,Servlet處理用戶請求,把結(jié)果給Tomcat,Tomcat再把結(jié)果傳給客戶.
? ? ?Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。
2.1.3 ?JDK
JDK 是整個Java的核心,包括了Java運(yùn)行環(huán)境(Java Runtime Envirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。它是一個寫Java的applet和應(yīng)用程序的程序開發(fā)環(huán)境。它由一個處于操作系統(tǒng)層之上的運(yùn)行環(huán)境還有開發(fā)者編譯,調(diào)試和運(yùn)行用Java語言寫的applet和應(yīng)用程序所需的工具組成。
? ? JDK(Java Development Kit)是Sun Microsystems針對Java開發(fā)員的產(chǎn)品,是開發(fā)Java的應(yīng)用基礎(chǔ),Eclipse的運(yùn)行也要依賴它。
JDK包含的基本組件包括:
? 1、javac – 編譯器,將源程序轉(zhuǎn)成字節(jié)碼?
? 2、jar – 打包工具,將相關(guān)的類文件打包成一個文件?
? 3、javadoc – 文檔生成器,從源碼注釋中提取文檔?
? 4、jdb – debugger,查錯工具
2.2 開發(fā)技術(shù)
2.2.1 ?JSP
JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
  JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。?
  Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。?
  JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?#xff0c;具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。
2.2.2 ?MVC
2.2.2.1 ?MVC模式簡介
MVC(Model-View-Controller,模型—視圖—控制器模式)用于表示一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個基本部分:模型(Model),視圖(View)和控制器(Controller)。
MVC由Trygve Reenskaug提出,是Xerox PARC在20世紀(jì)80年代為程序語言Smalltalk-80發(fā)明的一種軟件設(shè)計模式。模型—視圖—控制器模式的目的是實(shí)現(xiàn)一種動態(tài)的程式設(shè)計,使后續(xù)對程序的修改和擴(kuò)展簡化,并且使程序某一部分的重復(fù)利用成為可能。除此之外此模式通過對復(fù)雜度的簡化使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過對自身基本部份分離的同時也賦予了各個基本部分應(yīng)有的功能。專業(yè)人員可以通過自身的專長分組:控制器- 程序員編寫程序應(yīng)有的功能(實(shí)現(xiàn)算法等等);視圖 - 界面設(shè)計人員進(jìn)行圖形界面設(shè)計;模型 - 數(shù)據(jù)庫專家進(jìn)行數(shù)據(jù)管理和數(shù)據(jù)庫設(shè)計。
2.2.2.2 ?MVC模式工作原理
模型(Model):“數(shù)據(jù)模型”(Model)用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法。“模型”有對數(shù)據(jù)直接訪問的權(quán)利,例如對數(shù)據(jù)庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關(guān)心它會被如何顯示或是如何被操作。但是模型中數(shù)據(jù)的變化一般會通過一種刷新機(jī)制被公布。為了實(shí)現(xiàn)這種機(jī)制,那些用于監(jiān)視此模型的視圖必須事先在此模型上注冊,從而,視圖可以了解在數(shù)據(jù)模型上發(fā)生的改變。
視圖(View):視圖層能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示。在視圖中一般沒有程序上的邏輯。為了實(shí)現(xiàn)視圖上的刷新功能,視圖需要訪問它監(jiān)視的數(shù)據(jù)模型(Model),因此應(yīng)該事先在被它監(jiān)視的數(shù)據(jù)那里注冊。
控制器(Controller):控制器起到不同層面間的組織作用,用于控制應(yīng)用程序的流程。它處理事件并作出響應(yīng)。“事件”包括用戶的行為和數(shù)據(jù)模型上的改變。

?
圖2. MVC設(shè)計模型
2.2.3 ?Struts
Struts是Apache 基金會Jakarta 項(xiàng)目組的一個Open Source 項(xiàng)目,它采用MVC模式,能夠很好地幫助java 開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts也是面向?qū)ο笤O(shè)計,將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致。Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。
?
圖3. Struts的工作原理
在Struts的體系結(jié)構(gòu)中,模型分為兩個部分:系統(tǒng)的內(nèi)部狀態(tài)和可以改變狀態(tài)的操作(事務(wù)邏輯)。內(nèi)部狀態(tài)通常由一組ActinForm Bean表示。根據(jù)設(shè)計或應(yīng)用程序復(fù)雜度的不同,這些Bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時才獲得數(shù)據(jù)(從某個數(shù)據(jù)庫)。大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean調(diào)用。小型程序中,操作可能會被內(nèi)嵌在Action類,它是struts框架中控制器角色的一部分。當(dāng)邏輯簡單時這個方法很適合。 建議用戶將事務(wù)邏輯(要做什么)與Action類所扮演的角色(決定做什么)分開。
視圖主要由JSP建立,struts包含擴(kuò)展自定義標(biāo)簽庫(TagLib),可以簡化創(chuàng)建完全國際化用戶界面的過程。目前的標(biāo)簽庫包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及Template Tags等。
在struts中,基本的控制器組件是ActionServlet類中的實(shí)例servelt,實(shí)際使用的servlet在配置文件中由一組映射(由ActionMapping類進(jìn)行描述)進(jìn)行定義。對于業(yè)務(wù)邏輯的操作則主要由Action、ActionMapping、ActionForward這幾個組件協(xié)調(diào)完成的,其中Action扮演了真正的業(yè)務(wù)邏輯的實(shí)現(xiàn)者,ActionMapping與ActionForward則指定了不同業(yè)務(wù)邏輯或流程的運(yùn)行方向。struts-config.xml 文件配置控制器。
3 需求分析
3.1 功能需求
3.1.1 ?人員管理模塊
人員管理模塊包含了添加職工信息、修改職工信息、刪除職工信息、職工信息查詢和密碼修改等子功能模塊。
教師、科研人員以職工號和密碼登陸系統(tǒng)后,只能管理本人的信息,可以對本人的信息進(jìn)行查看和修改密碼。用戶修改密碼時若輸入的舊密碼不正確、兩次輸入的新密碼不一致、驗(yàn)證碼輸入錯誤則無法修改密碼。
管理員添加和修改用戶信息時必須填入職工號、職工姓名、性別、部門、聯(lián)系電話等信息,若添加的職工號或聯(lián)系電話數(shù)據(jù)庫中已存在,則添加信息失敗,反之成功添加,登陸密碼為123456。管理員可刪除已離職職工信息,亦可根據(jù)查詢條件模糊查詢?nèi)B毠さ男畔ⅰ?br /> 3.1.2 ?論文管理模塊
論文管理模塊包含了發(fā)表論文、修改論文信息、刪除論文信息、查詢論文信息等子功能模塊。
教師、科研人員可以發(fā)表論文,其中論文名稱和所發(fā)表期刊的名稱不能為空,發(fā)表論文成功后,數(shù)據(jù)庫中作者發(fā)表的論文次數(shù)加一;可以修改個人的論文信息和刪除個人的論文;可模糊查詢校內(nèi)的論文信息。
管理員可以對教師、科研人員所發(fā)表的論文信息進(jìn)行修改、刪除和查詢等操作,但不能修改論文的作者信息。
3.1.3 ?著作管理模塊
著作管理模塊包含了添加著作信息、修改著作信息、刪除著作信息、查詢著作信息等子功能模塊。
教師、科研人員可以錄入著作的基本信息,其中著作名稱、著作編號、出版社不能為空,發(fā)表著作成功后,數(shù)據(jù)庫中作者發(fā)表的著作次數(shù)加一;可以修改個人的著作信息和刪除個人的著作;可模糊查詢校內(nèi)的著作信息。
管理員可以對教師、科研人員所發(fā)表的著作信息進(jìn)行修改、刪除和查詢等操作,但不能修改著作的作者信息。
3.1.4 ?科研項(xiàng)目管理模塊
科研項(xiàng)目管理模塊包含了申報項(xiàng)目、審核項(xiàng)目、項(xiàng)目結(jié)題、項(xiàng)目鑒定、刪除未批準(zhǔn)項(xiàng)目、項(xiàng)目信息查詢等子功能模塊。
教師、科研人員可以申報項(xiàng)目,必須填寫項(xiàng)目編號、項(xiàng)目名稱、項(xiàng)目類別、立項(xiàng)時間、完成時間、申請經(jīng)費(fèi)等基本信息,申請人即為負(fù)責(zé)人,添加項(xiàng)目組成員信息時若為校內(nèi)人員必須填寫職工號,如果查無此職工號則添加失敗,可添加多個小組成員;項(xiàng)目未批準(zhǔn)時可刪除個人申報的項(xiàng)目信息;可模糊查詢校內(nèi)的項(xiàng)目信息。
管理員可以查詢校內(nèi)的項(xiàng)目信息;審核未批準(zhǔn)的項(xiàng)目,項(xiàng)目一旦立項(xiàng)后不可刪除;填寫項(xiàng)目結(jié)題信息;完成項(xiàng)目的鑒定。
3.1.5 ?設(shè)備管理模塊
設(shè)備管理模塊包含了添加設(shè)備信息、修改設(shè)備信息、刪除設(shè)備信息、查詢設(shè)備信息等子功能模塊。
管理員可以添加設(shè)備信息,必須填寫設(shè)備編號、設(shè)備名稱、型號、購入地、購入時間等基本信息;可查詢校內(nèi)的設(shè)備信息狀況;可修改設(shè)備的信息;可刪除已壞設(shè)備的信息。
3.2 運(yùn)行環(huán)境需求
3.2.1 ?系統(tǒng)軟件環(huán)境的建議配置
軟件環(huán)境如下表所示:
軟件名稱?? ?要 ?求
操作系統(tǒng)?? ?Windows XP
Web服務(wù)器?? ?Tomcat 5.5
數(shù)據(jù)庫?? ?SQLSever 2000
JDK?? ?JDK 5.0
Web瀏覽器?? ?Microsoft Internet Explorer 6.0
3.2.2 ?系統(tǒng)硬件環(huán)境的建議配置
硬件環(huán)境如下表所示:
硬件名稱?? ?要 ?求
CPU?? ?使用586或更高級別的處理器
內(nèi)寸?? ?128M或更高
硬盤?? ?80G以上
顯示器?? ?VGA顯示器
分辨率?? ?1024 * 768
以上只是基本的配置,建議在運(yùn)行系統(tǒng)時使用當(dāng)前中等級以上的計算機(jī),這樣配置運(yùn)行效果為佳。
3.3界面設(shè)計
3.3.1 ?界面操作需求
考慮到科研信息管理系統(tǒng)有大量的科研信息需要處理、統(tǒng)計,用戶使用和管理界面整體要美觀、簡潔和實(shí)用,管理信息顯示清晰明白。用戶的操作要簡易方便,過程簡單,不會因操作麻煩而引起嚴(yán)重的錯誤。
3.3.2 ?界面功能需求
本系統(tǒng)主要實(shí)現(xiàn)的界面如下:
1.職工登陸界面
2.添加、修改、刪除、分頁顯示職工信息和修改密碼的界面
3.添加、修改、刪除、分頁顯示論文信息的界面
4.添加、修改、刪除、分頁顯示著作信息的界面
5.添加、刪除、分頁顯示項(xiàng)目信息和管理項(xiàng)目的界面
6.添加、修改、刪除、分頁顯示設(shè)備信息的界面
7.操作成功提示界面
4 數(shù)據(jù)庫設(shè)計
4.3 數(shù)據(jù)庫實(shí)施?
4.3.1?? ?創(chuàng)建觸發(fā)器
1.?? ?于employee表上分別創(chuàng)建creatlogin和deletelogin觸發(fā)器,creatlogin觸發(fā)器用于新增職工信息時在登錄表中插入職工的登錄信息,初始密碼123456;deletelogin觸發(fā)器用于刪除離職職工信息時同時從login表中刪除該職工的扥錄信息;具體語句如下:
CREATE TRIGGER [creatlogin] ON [dbo].[employee]?
AFTER INSERT?
AS
BEGIN
? ? ? ? ? ? declare @emno varchar(8)
?? ?select @emno=inserted.eid from inserted
?? ?INSERT INTO login VALUES(@emno,'25D55AD283AA400AF464C76D713C07AD','3');
END;
CREATE TRIGGER [deletelogin] ON [dbo].[employee]?
AFTER DELETE?
AS
BEGIN
? ? ? ? ? ? declare @emno varchar(8)
? ? ? ? ? ? select @emno=deleted.eid from deleted
?? ?DELETE FROM login WHERE eid = @emno;
END;
2.?? ?于paper表上分別創(chuàng)建addamount和deletepaper觸發(fā)器,分別用于作者發(fā)表論文或刪除論文時其個人信息的論文數(shù)量相應(yīng)增1或剪1,具體語句如下:
CREATE TRIGGER [addamount] ON dbo.paper?
AFTER INSERT
AS
BEGIN
? ? ? ? ? ? declare @emno varchar(8)
? ? ? ? ? ? select @emno=inserted.author from inserted
? ? ? ? ? ? UPDATE ?employee SET pamount = pamount+1 WHERE eid = @emno;
END;

CREATE TRIGGER [deletepaper] ON dbo.paper?
AFTER DELETE?
AS
BEGIN
? ? ? ? ? ? declare @emno varchar(8)
? ? ? ? ? ? select @emno=deleted.author from deleted
? ? ? ? ? ? UPDATE employee SET pamount = pamount-1 WHERE eid = @emno;
END;
3.?? ?于book表上分別創(chuàng)建addbook和deletebook觸發(fā)器,分別用于作者發(fā)表著作或刪除著作時其個人信息的著作數(shù)量相應(yīng)增1或剪1,具體語句如下:
CREATE TRIGGER [addbook] ON [dbo].[book]?
AFTER INSERT
AS
BEGIN
? ? ? ? ? ? declare @emno varchar(8)
? ? ? ? ? ? select @emno=inserted.author from inserted
? ? ? ? ? ? UPDATE ?employee SET bamount = bamount+1 WHERE eid = @emno;
END;

CREATE TRIGGER [deletebook] ON [dbo].[book]?
AFTER DELETE?
AS
BEGIN
? ? ? ? ? ? declare @emno varchar(8)
? ? ? ? ? ? select @emno=deleted.author from deleted
? ? ? ? ? ? UPDATE employee SET bamount = bamount-1 WHERE eid = @emno;
END;
5 系統(tǒng)實(shí)現(xiàn)
5.1數(shù)據(jù)庫的連接
經(jīng)公共類SqlConn的Getconnection()方法與數(shù)據(jù)庫連接。
public class SqlConn {
?? ?private static final String driver="sun.jdbc.odbc.JdbcOdbcDriver";
?? ?private static final String datasource="jdbc:odbc:jin";
?? ? public static Connection Getconnection()throws SQLException{
?? ??? ? Connection conn=null;
?? ? ? ??? ?try{
?? ??? ??? ??? ?Class.forName(driver);
?? ??? ??? ?}catch(ClassNotFoundException ce)
?? ??? ??? ?{
?? ??? ??? ??? ?System.out.println(ce.getMessage());
?? ??? ??? ?}
?? ? ? ? ? ?try{
?? ? ? ? ? ??? ?conn=DriverManager.getConnection(datasource); ?? ?
?? ? ? ? ? ?}catch(SQLException e){
?? ? ? ??? ??? ?System.out.println(e.getMessage());
?? ? ? ??? ?}
?? ??? ??? ?return conn;
?? ? }
}
5.2 數(shù)據(jù)庫操作的實(shí)現(xiàn)
以項(xiàng)目管理模塊為例,ItemInfoDAO抽象接口,高度抽象并僅提供有限的幾個公有方法,涵蓋所有對項(xiàng)目表item內(nèi)數(shù)據(jù)的存取操作,包括新增、查詢、更新、刪除。
public interface ItemInfoDAO {
?? ?
?? ?public abstract boolean Update(ItemInfoVo iiv);
? ?//update涵蓋了所有對項(xiàng)目表item的更新操作,不同的操作由iiv指定并
//由相應(yīng)接口實(shí)現(xiàn)
public abstract ArrayList<ItemInfoVo> Search(InfoSearchVo isv);
?? ?//search涵蓋了所有對項(xiàng)目表item的查詢操作,以isv指定的查詢條件查
//詢,返回 ArrayList結(jié)果
?? ?public abstract boolean Delete(ItemInfoVo iiv);
?? ?//delete所有對項(xiàng)目表item的刪除操作
?? ?public abstract int checkadd(ItemInfoVo iiv);
?? ?//checkadd涵蓋了所有對項(xiàng)目表item的檢查數(shù)據(jù)是否合法,若合法則插
//入的操作
}
類ItemInfoDAOImpl實(shí)現(xiàn)了ItemInfoDAO抽象接口,實(shí)現(xiàn)了接口的所有抽象方法。
申報項(xiàng)目時AddItemInfoAction調(diào)用DaoFactory.getItemInfoDAOInstance.checkadd(iiv)進(jìn)行新增操作,并據(jù)返回的值判定數(shù)據(jù)是否成功插入,轉(zhuǎn)入相應(yīng)的界面,其中iiv為ItemInfoVo類對象,ItemInfoVo封裝了項(xiàng)目item表內(nèi)的所有字段。
public class AddItemInfoAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
?? ??? ??? ?HttpServletRequest request, HttpServletResponse response) {
….
? ? int message=DAOFactory.getItemInfoDAOInstance().checkadd(iiv);
?? ??? ?//信息檢查是否合法
?? ??? ?if(message==0)//信息合法
?? ??? ?{
?? ??? ??? ?request.getSession().setAttribute("iid",iiv.getIid());
?? ??? ??? ?return mapping.findForward("addmemberinfo");
?? ??? ?}
?? ??? ?else if(message==1)//項(xiàng)目編號已存在
?? ??? ?{
?? ??? ??? ?errors.add("iid", new ActionMessage("iid.error"));
?? ??? ??? ?saveErrors(request,errors);
?? ??? ??? ?return mapping.findForward("additeminfofail");
?? ??? ?}
?? ??? ?else if(message==2)//項(xiàng)目名稱已存在
?? ??? ?{
?? ??? ??? ?errors.add("iname", new ActionMessage("iname.error"));
?? ??? ??? ?saveErrors(request,errors);
?? ??? ??? ?return mapping.findForward("additeminfofail");
?? ??? ?}
?? ??? ?else//其他錯誤
?? ??? ?{
?? ??? ??? ?errors.add("all", new ActionMessage("all.error"));
?? ??? ??? ?saveErrors(request,errors);
?? ??? ??? ?return mapping.findForward("additeminfofail");
?? ??? ?}
其中DaoFactory類也可獲得其它實(shí)現(xiàn)了抽象接口的工廠類,可實(shí)現(xiàn)對數(shù)據(jù)庫中的其他的表進(jìn)行數(shù)據(jù)操作,如新增、查詢、更新、刪除。
public class DAOFactory {
?? ?
..….
public static PersonDAO getPersonDAOInstance()
?? ?{
?? ??? ?return new PersonDAOImpl() ;
?? ?}
?? ?
?? ?public static BookInfoDAO getBookInfoDAOInstance()
?? ?{
?? ??? ?return new BookInfoDAOImpl() ;?? ?
?? ?}
?? ?
?? ?public static ItemInfoDAO getItemInfoDAOInstance()
?? ?{
?? ??? ?return new ItemInfoDAOImpl();
?? ?}
?? ?
}
5.3 功能模塊的實(shí)現(xiàn)
5.3.1 ?登陸
用戶經(jīng)如登陸界面login.jsp填寫職工號、密碼、登陸類型和驗(yàn)證碼,登陸表單提交之前,調(diào)用LoginForm的validate進(jìn)行表單驗(yàn)證,若數(shù)據(jù)合法則轉(zhuǎn)向相應(yīng)的LoginAction,反之轉(zhuǎn)向登陸頁面顯示錯誤信息。
public ActionErrors validate(ActionMapping mapping,
?? ??? ??? ?HttpServletRequest request) {
?? ??? ?ActionErrors errors = new ActionErrors();
?? ??? ?String random2 = request.getSession().getAttribute("random").toString();
?? ??? ?if (this.eid == null || "".equals(this.eid)) {
?? ??? ??? ?errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("eid.null"));

?? ??? ?} else if (this.eid.length() != 8) {
?? ??? ??? ?errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("eid.length"));
?? ??? ?} else if (this.pwd == null || "".equals(this.pwd)) {
?? ??? ??? ?errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(pwd.null"));

? ? ? ? } else if (this.pwd.length() < 5 || this.pwd.length() > 16) {
?? ? ? ? ? ?errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("pwd.length"));
? ? ? ? } else if (this.random == null || "".equals(this.random)) {
? ? ? ? ? ? errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("random.null"));
….
LoginAction據(jù)用戶所填寫的表單數(shù)據(jù),調(diào)用DAOFactory.getPersonDAOInstance().Login(per),查詢數(shù)據(jù)庫中用戶是否具有合法身份,若合法則轉(zhuǎn)向相應(yīng)權(quán)限的界面,否則轉(zhuǎn)向錯誤提示界面。
public ActionForward execute(ActionMapping mapping, ActionForm form,
?? ??? ??? ?HttpServletRequest request, HttpServletResponse response) {
?? ??? ?ActionMessages errors = new ActionMessages() ; ?//錯誤消息封裝類
?? ??? ?LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
?? ??? ?String eid = loginForm.getEid() ; ?//獲取帳號
?? ??? ?HttpSession session=request.getSession();
?? ??? ?MD5_Encoding md5=new MD5_Encoding(); ?//密碼封裝類
?? ??? ?String pwd=md5.getMD5ofStr(loginForm.getPwd());?? ?//獲取密碼
?? ??? ?String type=loginForm.getType();//獲取權(quán)限
?? ??? ?PersonVo per = new PersonVo();
?? ??? ?per.setEid(eid);
?? ??? ?per.setPwd(pwd);
?? ??? ?per.setType(type);
?? ??? ?String[] path={"login","school","college","teacher"};
?? ??? ?if(true== DAOFactory.getPersonDAOInstance().Login(per))
?? ??? ?{
?? ??? ??? ?// per所封裝的數(shù)據(jù)合法
?? ??? ??? ?session.setAttribute("eid",eid);
?? ??? ??? ?session.setAttribute("name",per.getName());
?? ??? ??? ?session.setAttribute("type",type);
?? ??? ??? ?session.setAttribute("depart", per.getDepart());
?? ??? ??? ?loginForm.setEid("");
?? ??? ??? ?loginForm.setPwd("");
?? ??? ??? ?loginForm.setType("1");
?? ??? ??? ?//FORM表單重置
?? ??? ??? ?return mapping.findForward(path[Integer.parseInt(type)]);
?? ??? ??? ?//跳轉(zhuǎn)對應(yīng)界面
?? ??? ?}
?? ??? ?else{
?? ??? ??? ?errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
?? ??? ??? ?"login.error"));
?? ??? ??? ?saveErrors(request,errors);
?? ??? ??? ?return mapping.findForward(path[0]);//跳轉(zhuǎn)錯誤界面
?? ??? ??? ?}
?? ?}
5.3.2 ?項(xiàng)目申報
教師進(jìn)入項(xiàng)目申報界面additeminfo.jsp,并填寫相關(guān)信息提交表單后,由AddItemInfoForm進(jìn)行驗(yàn)證,如果數(shù)據(jù)不合法轉(zhuǎn)向項(xiàng)目申報界面并提示錯誤信息,反之AddItemInfoAction據(jù)所提交表單數(shù)據(jù)調(diào)用DaoFactory.getItemInfoDAOInstance.checkadd(iiv)進(jìn)行新增項(xiàng)目操作,并據(jù)返回的值判定數(shù)據(jù)是否成功插入,轉(zhuǎn)入相應(yīng)的界面。
5.3.4 ?查詢項(xiàng)目信息
用戶進(jìn)入項(xiàng)目查詢界面,由SearchItemInfoAction據(jù)SearchForm的searchtype和searchname屬性值調(diào)用DAOFactory.getItemInfoDAOInstance().Search(isv)獲得信息查詢結(jié)果并設(shè)置于session的list屬性中,據(jù)struts-config.xml 文件配置轉(zhuǎn)向分頁處理PageListAction。獲得當(dāng)前頁的結(jié)果集合設(shè)置于session的sublist屬性中,轉(zhuǎn)向相應(yīng)顯示頁面,通過標(biāo)簽庫中的logic、bean等標(biāo)簽顯示結(jié)果。
public ActionForward execute(ActionMapping mapping, ActionForm form,
?? ??? ??? ?HttpServletRequest request, HttpServletResponse response) {
?? ??? ?ArrayList list=(ArrayList) request.getSession().getAttribute("list");?? ??? ?
?? ??? ?int pagenumber = 0;
?? ??? ?if ("".equals(request.getParameter("pagenumber"))
?? ??? ??? ??? ?|| null == request.getParameter("pagenumber")) {
?? ??? ??? ?pagenumber = 1;
?? ??? ??? ?
?? ??? ?} else {
?? ??? ??? ?pagenumber = Integer.parseInt((String) request
?? ??? ??? ??? ??? ?.getParameter("pagenumber"));
?? ??? ?}?? ?

?? ??? ?String[] path={"search","searchpaper","searchbook","searchitem"};
?? ??? ?String search = (String) request.getSession().getAttribute("search");
?? ??? ?//判斷是否為空,若為空,則提示無記錄,若不為空,則分頁顯示
?? ??? ?if (list.size() == 0) {
?? ??? ??? ?request.setAttribute("sublist", list);
?? ??? ??? ?return mapping.findForward(path[Integer.parseInt(search)]);
?? ??? ?} else {

?? ??? ??? ?ListPage listpage = new ListPage(list, pagenumber, 5);
//新建ListPage類的實(shí)例化對象listpage
?? ??? ??? ?int lastpagenumber = listpage.getLastPageNumber();
?? ??? ??? ?if (pagenumber >= lastpagenumber) {
?? ??? ??? ??? ?pagenumber = lastpagenumber;
?? ??? ??? ?}
?? ??? ??? ?List sublist = (List) listpage.getThisPageElements();
//調(diào)用listpage.getThisPageElements()方法獲取當(dāng)前頁的查詢結(jié)果集合
?? ??? ??? ?request.getSession().setAttribute("lastpagenumber", lastpagenumber);
?? ??? ??? ?request.getSession().setAttribute("pagenumber", pagenumber);
?? ??? ??? ?request.getSession().setAttribute("sublist", sublist);
?? ??? ??? ?return mapping.findForward(path[Integer.parseInt(search)]);
?? ??? ?}
?? ?}
5.3.5 ?項(xiàng)目審核
管理員進(jìn)入某個項(xiàng)目的詳細(xì)查看界面后,選擇審批項(xiàng)目時轉(zhuǎn)向ItemInfoAction將該項(xiàng)目的詳細(xì)信息設(shè)置于session屬性中以便轉(zhuǎn)向?qū)徍隧撁鏁r提供項(xiàng)目信息,填寫審核信息后提交表單,由UpdateItemInfoAction據(jù)UpdateItemInfoForm表單中的屬性值調(diào)用DAOFactory.getItemInfoDAOInstance().Update(iiv),修改該項(xiàng)目的進(jìn)度信息,據(jù)返回值轉(zhuǎn)向相應(yīng)的界面。
5.3.5 ?項(xiàng)目刪除
教師或管理員選擇刪除某個未審核項(xiàng)目時,DeleteIntemInfoAction據(jù)request對象所傳的項(xiàng)目編號屬性調(diào)用DAOFactory.getMemberInfoDAOInstance().Delete(miv)刪除該項(xiàng)目組成員信息,在調(diào)用DAOFactory.getItemInfoDAOInstance().Delete(iiv)刪除該項(xiàng)目的基本信息,struts-config.xml 文件配置轉(zhuǎn)向相應(yīng)的界面
5.4 系統(tǒng)安全
5.4.1登陸安全
經(jīng)登錄過濾器LoginFilter使未經(jīng)登陸頁面正常登陸,而是從瀏覽器地址欄中輸入地址的人員不能登陸本系統(tǒng),跳轉(zhuǎn)回登陸界面。
public class LoginFilter implements Filter {
?? ?public void doFilter(ServletRequest request, ServletResponse response,
?? ??? ??? ?FilterChain chain) throws IOException, ServletException {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?HttpServletRequest req = (HttpServletRequest) request;
?? ??? ?HttpServletResponse resp = (HttpServletResponse) response;
?? ??? ?HttpSession session = req.getSession();
?? ??? ?if (null == session.getAttribute("eid")
?? ??? ??? ??? ?|| "" == session.getAttribute("eid")) {
?? ??? ??? ?resp.sendRedirect(req.getContextPath() + "/login.jsp");
?? ??? ?}else {
?? ??? ??? ?chain.doFilter(request, response);
?? ??? ?}//據(jù)session中的職工號屬性是否為空判定用戶是否正常登陸
?? ?}
5.4.2 ?密碼安全
用戶登入填寫密碼后提交由LoginAction調(diào)用MD5_Encoding類的getMD5ofStr()方法對密碼進(jìn)行封裝,防止他人知道用戶密碼的原文。
6 總結(jié)
經(jīng)過幾個月的設(shè)計和開發(fā),基于MVC思想的科研信息管理平臺基本完成,所實(shí)現(xiàn)的功能基本符合需求,能夠完成論文、著作等成果的發(fā)表,查詢科研信息和管理,申報項(xiàng)目,項(xiàng)目管理,設(shè)備管理,職工信息的管理等。但該系統(tǒng)還有許多不夠完善的地方,系統(tǒng)實(shí)現(xiàn)的功能較簡單,用戶界面不夠美觀,出錯處理不夠等多方面問題,這些都有待進(jìn)一步改善。
畢業(yè)設(shè)計中,使我提高了實(shí)際操作能力,增加了開發(fā)系統(tǒng)的經(jīng)驗(yàn),對MVC思想的了解和Struts框架的應(yīng)用有了更深層次的掌握,初步了解了抽象工廠的工作原理,從以前的理論上升到實(shí)踐,真正做到學(xué)有所用,懂得如何發(fā)現(xiàn)問題,分析問題,解決問題。雖然在設(shè)計過程中我也遇到一些困難,但在老師的悉心幫助和自己的努力下,我都認(rèn)真克服了,雖然并沒有做到盡善盡美,應(yīng)該說這是一大遺憾吧,但我相信這段經(jīng)驗(yàn)的寶貴收獲使我終身受益。
?

總結(jié)

以上是生活随笔為你收集整理的基于java的科研信息管理平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。