付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
常州大學畢業(yè)設計(論文)(2012屆)題目學生學院專業(yè)班級校內(nèi)指導教師專業(yè)技術(shù)職務校外指導老師專業(yè)技術(shù)職務二。一二年六月學術(shù)論文刊物管理系統(tǒng)的設計與實現(xiàn)摘要:隨著信息技術(shù)的迅速發(fā)展,許多單位都建立了自己的信息管理平臺,學術(shù)期刊主辦單位也逐步建立了自己的網(wǎng)上投稿、審稿和稿件管理系統(tǒng)。本論文設計的學術(shù)論文刊物管理系統(tǒng)基于B/S結(jié)構(gòu),采用JSP技術(shù)、SSH技術(shù)和NavicatforMySQL數(shù)據(jù)庫技術(shù)進行交互,主要完成對學術(shù)期刊的管理,不同的用戶可以根據(jù)不同的權(quán)限實現(xiàn)對數(shù)據(jù)庫的操作,包括數(shù)據(jù)庫中信息的添加、刪除、修改、查詢等。系統(tǒng)實現(xiàn)了學術(shù)論文的在線投稿、審稿和稿件瀏覽,相關(guān)學術(shù)論文信息的管理,包括投稿人、審稿專家、公告、留言及論文投稿審稿過程控制等。測試表明,本系統(tǒng)具有操作簡單、界面友好、功能完善、方便移植等特點,該系統(tǒng)的投稿和審稿部分配合起來使用,能完成期刊編輯社的基本需求。關(guān)鍵詞:B/S架構(gòu);SSH技術(shù);學術(shù)論文刊物管理系統(tǒng)TheDesignandImplementationofAcademicPublication
ManagementSystemAbstract::Withtherapiddevelopmentofinformationtechnology,manyorganizationshaveestablishedtheirowninformationmanagementplatforms.Theorganizersofacademicjournalshavegraduallyestablishedtheirownmanagementsystemforonlinesubmission,reviewandmanuscriptsmanagement.Inthispaper,basedonB/Sstructure,JSP,SSHandNavicatforMySQLdatabasetechnology,thedesignofacademicpublicationmanagementsystemmailycompletesthemanagementofacademicjournalsandthedifferentpermissionsonthedatabaseoperationfromdifferentusers,includingadding,deleting,modifying,querying,andsoon.Thesystemimplementsonlinesubmission,reviewandbrowseofpapersandrelevantacademicinformationmanagement,includingcontributors,reviewers,announcements,messages,processcontrolofpapersubmissionandreview.Testsshowthatthesystemiseasytouse,fullyfunctionalandeasilyportedwhichmeetsthebasicrequirementsofthejournaleditorialstaff.Keywords:B/SStructure;SSHTechnology;TheAcademicPublicationManagementSystemIITOC\o"1-5"\h\z摘要I目次III1引言1課題的背景、目的和意義1課題國內(nèi)外發(fā)展概況1課題欲解決的問題22系統(tǒng)的總體設計2系統(tǒng)可行性分析2系統(tǒng)功能需求分析3系統(tǒng)功能模塊設計4系統(tǒng)總模塊設計4登錄模塊的設計5注冊模塊的設計6前臺頁面模塊的設計6作者入口模塊的設計7專家入口模塊的設計8編輯入口模塊的設計9用戶管理模塊的設計10數(shù)據(jù)庫概要設計11數(shù)據(jù)庫邏輯結(jié)構(gòu)設計12系統(tǒng)環(huán)境需求163系統(tǒng)的實現(xiàn)17數(shù)據(jù)庫連接17登錄模塊的實現(xiàn)18注冊模塊的實現(xiàn)19用戶管理模塊的實現(xiàn)20增加投稿作者信息21刪除投稿作者信息22查找投稿作者信息23修改投稿作者信息24在線投稿模塊的實現(xiàn)25審核稿件模塊的實現(xiàn)264系統(tǒng)的測試及難點分析27系統(tǒng)的測試27查詢稿件功能測試27通知作者修改稿件測試28開發(fā)過程中遇到的問題及采用的解決方法295結(jié)論30III參考文獻32致謝33IV常州大學本科生畢業(yè)設計(論文)1引言課題的背景、目的和意義近年來我國學術(shù)人員發(fā)表論文的數(shù)量快速增長,傳統(tǒng)的稿件處理方式已經(jīng)不適應學術(shù)期刊的發(fā)展。目前主要存在著編輯部工作繁忙,稿件管理比較混亂,不能及時告知作者審稿的進展情況等問題。如何高效、快速地處理大量的期刊稿件,提高工作效率,縮短論文發(fā)表周期,成為編輯部迫切需要解決的問題。隨著信息時代的高速發(fā)展,學術(shù)期刊網(wǎng)絡化已成為適應時代發(fā)展的必然要求。我國很多學術(shù)期刊已經(jīng)在網(wǎng)上建立起自己的主頁和獨立網(wǎng)站。程維紅研究表明,中國科學技術(shù)協(xié)會所屬的1018份期刊中,2010年9月調(diào)查表明,有64%的期刊自建網(wǎng)站,其中超過60%的網(wǎng)站建立了采編系統(tǒng),包括在線投稿、在線查稿、在線審稿、遠程編輯等[1]。期刊網(wǎng)絡化管理能夠解決人工管理的很多弊端,例如:可利用網(wǎng)站進行信息發(fā)布,提高期刊的時效性,運行效率高,動作成本低,發(fā)行量大,社會效益高等等。這些優(yōu)點能夠極大地提高期刊信息管理的效率,逐步與世界接軌,最終實現(xiàn)稿件的科學化、正規(guī)化管理。本課題研究的目標是利用目前比較流行的Spring框架技術(shù)構(gòu)建整個系統(tǒng),實現(xiàn)學術(shù)刊物的現(xiàn)代化管理。通過系統(tǒng)的實施,不同的用戶可以根據(jù)不同的權(quán)限實現(xiàn)對數(shù)據(jù)庫的操作,包括數(shù)據(jù)庫中信息的添加、修改、刪除、查詢等。本系統(tǒng)具有操作簡單、界面友好、方便移植等特點,能夠很好的完成對學術(shù)成果的管理。本系統(tǒng)作為一種辦公系統(tǒng)具有非常重要的意義。以Internet為橋梁,突破了傳統(tǒng)投稿的諸多限制與不便,可通過計算機網(wǎng)絡實現(xiàn)稿件的投遞。對編輯部來說,提高了工作效率,實現(xiàn)了辦公的自動化。課題國內(nèi)外發(fā)展概況國內(nèi)大多數(shù)學術(shù)網(wǎng)站僅限于雜志期刊本身基本信息的發(fā)布,并沒有充分利用網(wǎng)絡資源和現(xiàn)代化的計算機網(wǎng)絡技術(shù)來實現(xiàn)雜志各種信息的管理和挖掘?;谖覈鴮W術(shù)期刊弱勢地位與國外學術(shù)期刊的強勁發(fā)展態(tài)勢所形成的巨大反差,建立學術(shù)期刊的網(wǎng)絡信息管理平臺,可極大地提高工作效率,拉近作者與雜志社的距離,提升雜志期刊的質(zhì)量,打造學術(shù)期刊的品牌。通過建立網(wǎng)絡信息化管理平臺,可以在網(wǎng)絡上進行雜志社信息發(fā)布、作者信息查詢、網(wǎng)上訂閱等功能,可以實現(xiàn)信息的快捷傳遞,提高雜志社的工作效率[2]縱觀國內(nèi)外學術(shù)期刊和數(shù)據(jù)庫廠商最近的動態(tài)可以發(fā)現(xiàn),學術(shù)期刊網(wǎng)絡化具有一些明顯的發(fā)展趨勢。內(nèi)容深加工和數(shù)據(jù)挖掘的重要性被大大提高,學術(shù)期刊網(wǎng)絡化出版主體發(fā)生了深刻的變化,從傳統(tǒng)的學術(shù)出版社到現(xiàn)在的網(wǎng)絡學術(shù)出版平臺,期刊集群化網(wǎng)絡出版模式成為發(fā)展趨勢。單個期刊幾乎不可能實現(xiàn)有很強影響力的網(wǎng)絡出版平臺,因此,具備專業(yè)性檢索、知識關(guān)聯(lián)和深度鏈接的專業(yè)性集群期刊和學科門戶將從很大程度上代表著未來學術(shù)出版的趨勢[3]??傊?,期刊網(wǎng)絡化發(fā)展迅猛,新概念和新技術(shù)不斷涌現(xiàn),作為精品內(nèi)容供應商的學術(shù)期刊在網(wǎng)絡化大潮下,將面臨新的一輪發(fā)展機遇,如果沒能抓住這次機遇,將使我國第1頁共33頁常州大學本科生畢業(yè)設計(論文)學術(shù)期刊與國外同行的差距進一步拉大。課題欲解決的問題由于本系統(tǒng)涉及到的事務較多,需要頻繁訪問數(shù)據(jù)庫,采用常規(guī)方法訪問數(shù)據(jù)庫,效率較低。使用Spring框架可以大大簡化對數(shù)據(jù)庫的重復操作,只需要集中精力完成系統(tǒng)的業(yè)務邏輯設計??蚣芤话闶浅墒?,穩(wěn)健的,它可以處理系統(tǒng)很多細節(jié)問題,比如,事務處理,安全性,數(shù)據(jù)流控制等問題,而且它是不斷升級的,擴展性也很好[4]。傳統(tǒng)的程序結(jié)構(gòu),只要有一點小的需求發(fā)生改變,將意味著放棄整個頁面或者改寫。采用J2EE分層架構(gòu),在優(yōu)秀的分層架構(gòu)里,控制層依賴于邏輯層,但絕不與任何具體的業(yè)務邏輯組件耦合,只與接口耦合。同樣,業(yè)務邏輯層依賴于DAO層,也不會與任何具體的DAO組件耦合,而是面向接口編程。這種方式的軟件實現(xiàn),即使軟件的部分發(fā)生改變,其他部分也盡可能不要改變[5]。其次要考慮數(shù)據(jù)庫的安全性。設計3張表,角色表、權(quán)限表和角色權(quán)限對應表。使各角色進入系統(tǒng)后只會顯示對應的權(quán)限,這樣就不存在未經(jīng)授權(quán)或者不合法的用戶對數(shù)據(jù)庫進行更改破壞。2系統(tǒng)的總體設計本章將介紹系統(tǒng)開發(fā)的可行性分析、功能需求分析、功能模塊設計、數(shù)據(jù)庫的概要設計、數(shù)據(jù)庫邏輯結(jié)構(gòu)設計以及系統(tǒng)環(huán)境需求分析。系統(tǒng)可行性分析(1)技術(shù)可行性本系統(tǒng)采用MyEclipseforSpring8.6作為開發(fā)工具,服務器采用Tomcat6.0的版本。開發(fā)平臺選擇J2EE(JavaPlatformEnterpriseEdition,Java平臺企業(yè)版)??紤]到數(shù)據(jù)可能較大和操作簡單,數(shù)據(jù)庫使用NavicatforMySQL。利用成熟的Struts、Spring、Hibernate框架技術(shù),可以迅速地開發(fā)本系統(tǒng)。Struts2的特點:Struts2不同于Struts1,核心控制器是FilterDispatcher,它用于處理用戶請求的Action實例,并不是用戶實現(xiàn)的業(yè)務控制器,而是Action代理一一因為用戶實現(xiàn)的業(yè)務控制器并沒有與ServletAPI耦合,顯然無法處理用戶請求。而Struts2框架提供了系列攔截器,該系列攔截器負責將HttpServletRequest請求參數(shù)解析出來,傳入到Action中,并回調(diào)Action的excute方法來處理用戶請求。顯然,上面的處理過程是典型的AOP(面向切面編程)處理方式[6]。Spring2.5的特點:Spring是一個輕量級的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架。代量從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型的Spring應用中的對象不依賴Spring的特定類。代制反華?!猄pring通過一種稱作控制反轉(zhuǎn)(IOC)的技術(shù)促進了松耦合。當應用第2頁共33頁常州大學本科生畢業(yè)設計(論文)了IOC,一個對象依賴的其他對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象[7]。面向切面一一Spring提供了面向切面編程的支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務進行內(nèi)聚性的開發(fā)。應用對象只實現(xiàn)它們應該做的一一完成業(yè)務邏輯,僅此而已。它們并不負責其它的系統(tǒng)級關(guān)注點,例如日志或事務支持。容器一一Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創(chuàng)建基于一個可配置原型,你的bean可以創(chuàng)建一個單獨的實例或者每次需要時都生成一個新的實例一一以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應該被混同于傳統(tǒng)的重量級的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用[8]??蚣躍pring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎(chǔ)功能,將應用邏輯的開發(fā)留給編程人員。Hibernate的特點:Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構(gòu)中取代CMP完成數(shù)據(jù)持久化的重任[9]。Hibernate的核心接口——共有5個,分另U為:SessionSessionFactoryTransactionQuery和Configuration0這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。Hibernate的配置文件是xml的格式,用來定制連接數(shù)據(jù)庫,所以必須寫一個類和數(shù)據(jù)庫中的表形成映射,從而和JSP網(wǎng)頁動態(tài)交互數(shù)據(jù)[10]。因此從技術(shù)上分析,開發(fā)本系統(tǒng)是可行的。(2)需求可行性針對目前學術(shù)期刊處理的實際情況,人性化管理確實正在成為一個困擾編輯社的難題,本系統(tǒng)在此種情況下設計開發(fā),是具有其價值和需求的。(3)操作可行性本系統(tǒng)的操作十分簡單。以不同的角色進入系統(tǒng)后,即擁有各角色才有的權(quán)限(系統(tǒng)管理員具有所以權(quán)限)。通過左邊樹形菜單欄可以方便的進入各個功能模塊,操作簡明易懂,十分方便用戶使用。系統(tǒng)功能需求分析通過對任務書的仔細分析,本系統(tǒng)需要實現(xiàn)以下一些功能,分別是:前臺瀏覽刊物功能、作者工作區(qū)功能、專家工作區(qū)功能、編輯工作區(qū)功能和用戶管理功能。(1)前臺瀏覽刊物功能包括以下具體內(nèi)容:讀者既可以根據(jù)期刊標題的關(guān)鍵字快速查找所需的學術(shù)期刊,也可以在分類列表中仔細尋找感興趣的期刊。每種期刊都會列第3頁共33頁常州大學本科生畢業(yè)設計(論文)出作者、刊名、學位授予單位、學位授予年度、專業(yè)、導師等一系列基本信息,方便讀者準確閱讀學術(shù)期刊內(nèi)容。由于讀者權(quán)限較小,所以設計成只有閱讀期刊的權(quán)限。投稿作者如果對所投稿件有疑問或者對系統(tǒng)有任何不懂可以在留言板中向管理員留言,留言內(nèi)容會準確的反應在用戶管理模塊中。(2)作者工作區(qū)功能包括以下具體內(nèi)容:主要分為在線投稿和查看稿件審核進度兩個模塊。在線投稿時需按照投稿要求來投遞稿件,只有準確的填寫了作者信息和稿件信息才會被錄入數(shù)據(jù)庫中供專家審核。作者可實時查看稿件審核進度,以便完善和確認稿件信息。(3)專家工作區(qū)功能包括以下具體內(nèi)容:審稿專家可在此模塊中審核稿件和查看審稿記錄。初始稿件的審稿狀態(tài)、編審通過、送審都為0,需要專家去處理這些稿件,除此之外專家還需給審核的稿件進行評價,從而方便編輯后續(xù)處理稿件。審核完成的稿件信息會在審稿記錄模塊中顯示出來,確保能夠核對審稿信息。(4)編輯工作區(qū)功能包括以下具體內(nèi)容:主要有聯(lián)系投稿作者、上傳稿件和發(fā)布新聞通知等功能。專家送審過的稿件信息會在編輯工作區(qū)顯示,編輯根據(jù)專家意見及時通知作者修改、確認、退稿、匯款等。只有專家審核通過,才能上傳到前臺供讀者瀏覽。如果需要發(fā)布新聞通知,可在新聞通知區(qū)域填寫內(nèi)容,點擊發(fā)布后前臺主頁會以滾動字幕形式展示給讀者相關(guān)信息。(5)用戶管理功能包括以下具體內(nèi)容:該模塊主要是管理員的相關(guān)操作,在此模塊中可以增、刪、查、改投稿作者和審稿專家的基本信息。除此之外,在回復留言模塊中,可以查看所有留言信息以便及時回復留言者。系統(tǒng)功能模塊設計將系統(tǒng)設計成由相對獨立、單一功能的模塊組成的結(jié)構(gòu),從而縮小開發(fā)范圍,防止錯誤蔓延,提高系統(tǒng)的可靠性[11]0每個模塊可以單獨的被理解、編寫、調(diào)試、查錯與修改,模塊結(jié)構(gòu)整體上具有較高的正確性、可理解性與可維護性。系統(tǒng)總模塊設計根據(jù)系統(tǒng)的功能需求分析,本系統(tǒng)主要分為6個模塊,系統(tǒng)總體功能圖如圖2.1所示。主要系統(tǒng)模塊及功能描述如下:(1)公共模塊:包括用戶登錄和用戶注冊。(2)前臺頁面:主要分為期刊瀏覽和留言板兩個模塊。(3)作者入口:具有在線投稿與查看稿件審核進度等模塊。(4)專家入口:具有審核稿件以及批閱意見等模塊。(5)編輯入口:主要有聯(lián)系作者與上傳新稿等模塊。(6)用戶管理:管理審稿專家和編輯的信息,包括信息的增、刪、改、查等,以及回復作者留言。第4頁共33頁
常州大學本科生畢業(yè)設計(論文)圖2.1系統(tǒng)總功能模塊圖登錄模塊的設計登錄模塊的主要功能是驗證用戶信息,判斷是否是合法用戶,成功才能進入系統(tǒng)。用戶需要輸入用戶名、密碼,兩者均不能為空。輸入完畢,點擊登錄便會驗證用戶名、密碼,只有當輸入的數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)一致時才能登錄成功,否則返回登錄界面。登錄成功后系統(tǒng)便會根據(jù)此用戶名所屬的角色分配其相應的功能模塊,不屬于此角色的功能進入系統(tǒng)后是看不到的,避免非法操作系統(tǒng)模塊,破壞系統(tǒng)的安全性。登錄模塊的程序流程如圖2.2所示。圖2.2登錄程序流程圖第5頁共33頁
常州大學本科生畢業(yè)設計(論文)注冊模塊的設計注冊模塊主要是用來注冊讀者和投稿作者相關(guān)信息,從而實現(xiàn)登錄系統(tǒng)。用戶需輸入用戶名,必須是6-20位的字符,如果不正確會提示不合規(guī)范重新輸入。密碼和用戶名類似,再次輸入的密碼必須和第一次相同,否則也會提示兩次密碼不相同請重新輸入。下拉列框需選擇您的角色,主要分讀者用戶和投稿作者。讀者只具有瀏覽期刊的功能,投稿作者權(quán)限稍大,能夠在線投稿以及查看稿件審核進度。相關(guān)信息填寫完成后,點擊立即注冊便會跳轉(zhuǎn)到登錄首頁。具體的注冊流程如圖2.3所示。圖2.3注冊程序流程圖前臺頁面模塊的設計前臺頁面模塊主要功能有:刊物瀏覽、留言板等功能。具體的功能模塊圖如圖2.4所示。第6頁共33頁
常州大學本科生畢業(yè)設計(論文)圖2.4前臺頁面功能模塊圖刊物瀏覽模塊功能比較簡單,考慮到是給讀者用戶瀏覽的,所以對數(shù)據(jù)庫的直接操作不是很多,只有一些普通的查看、查找功能。讀者不僅可以查看自己感興趣的期刊,還可以從新聞通知得知編輯社最新動態(tài)。留言板模塊中用戶需填寫準確的姓名、主題以及內(nèi)容,三者都不能為空,否則會提示重新填寫。填寫完留言信息后還需要選擇回復方式,系統(tǒng)管理員會默認以站內(nèi)郵件方式回復留言者,除此之外還可以選擇手機短信或者Email回復。填寫完所有信息后點擊提交留言內(nèi)容”,管理員模塊便可以看到留言內(nèi)容。留言板程序流程圖如圖2.5所示。作者入口模塊的設計第7頁共33頁
常州大學本科生畢業(yè)設計(論文)作者模塊主要實現(xiàn)了在線投稿功能和查看稿件審核進度功能。在線投稿功能模塊圖如圖2.6所示。圖2.6圖2.6在線投稿功能模塊圖在線投稿分為5步:填寫作者信息,填寫稿件信息,填寫稿件擴展信息,上傳全文,完成投稿。每步都必須按照要求填寫才能執(zhí)行下一步,全部填寫完畢方可完成投稿。查看稿件審核進度實質(zhì)是一個作者工作區(qū),主要包括稿件箱、站內(nèi)信息和系統(tǒng)服務3個功能。在稿件箱中作者可以隨時查看自己所投稿件的狀態(tài),以便及時修改、確認。站內(nèi)信息里顯示的是自己的留言信息以及管理員的回復信息。如果需要修改自己登錄賬2.7所2.7所稿件進度查詢我的稿件箱站內(nèi)信息系統(tǒng)服務審待待已已已已個編理修確發(fā)退收發(fā)人輯中改認表回到送基部的的的的的的的本信稿稿稿稿稿消消信息件件件件件息息息圖2.7稿件進度查詢功能模塊圖專家入口模塊的設計第8頁共33頁
常州大學本科生畢業(yè)設計(論文)專家入口功能模塊圖審稿專家模塊主要實現(xiàn)了審核稿件功能和查看審稿記錄功能。如圖2.8所示。專家入口功能模塊圖圖2.8專家入口功能模塊圖審核稿件模塊中顯示的是作者所投遞的有效的稿件,專家可以根據(jù)情況查找特定的稿件來進行快速審核,初始審稿狀態(tài)都為空,專家需點擊“審核稿件”來進行審理稿件,審核完成前需選擇是否送審,如果送審了,稿件會被傳遞到編輯部,編輯人員可以根據(jù)專家的評價來處理稿件。發(fā)現(xiàn)有不合格稿件或者是誤傳的稿件也可以及時刪除,優(yōu)化系統(tǒng)資源。審稿記錄模塊中可以查看已經(jīng)審核通過的稿件,以便后續(xù)查證。審核稿件程序流程圖如圖2.9所示。編輯入口模塊的設計編輯模塊主要實現(xiàn)了通知作者、上傳新稿和發(fā)布新聞通知功能。編輯入口功能模塊
第9頁共33頁
常州大學本科生畢業(yè)設計(論文)圖如圖2.10所示通知作者模塊顯示的是專家送審的稿件信息,編輯可以根據(jù)專家給予的評價通過站內(nèi)郵件形式通知作者修改、確認、退回、匯稿費等。如果稿件得到專家同意認為可以錄用,編輯可以將其上傳至前臺頁面供讀者閱覽。編輯部還可以在發(fā)布新聞欄填寫最新通知,內(nèi)容將以滾動字幕形式顯示在刊物瀏覽模塊。通知作者程序流程圖如圖2.11所示。圖2.11通知作者程序流程圖用戶管理模塊的設計用戶管理模塊主要實現(xiàn)了投稿作者信息管理功能和審稿專家信息管理功能,普通角第10頁共33頁常州大學本科生畢業(yè)設計(論文)色沒有管理這個模塊的權(quán)限,只有系統(tǒng)管理員才有這個權(quán)限。其中投稿作者是通過注冊獲得賬號,而審稿專家和編輯持管理員給予的賬號進入系統(tǒng)。用戶管理功能模塊圖如圖2.12所示。圖2.12用戶管理功能模塊圖數(shù)據(jù)庫概要設計通過對系統(tǒng)功能和業(yè)務流程的仔細調(diào)查、分析,本系統(tǒng)的數(shù)據(jù)需求包括:投稿作者信息、稿件信息、新聞通知信息、留言信息、審稿專家信息、權(quán)限信息、角色信息、角色對應權(quán)限信息、期刊信息、用戶信息等。投稿作者信息包括:投稿作者ID、作者姓名、性別、省份、城市、電話、手機、email、郵政編碼、具體聯(lián)系方式、單位、登錄權(quán)限、角色ID。稿件信息包括:稿件ID、投稿作者姓名、學位授予單位、稿件聯(lián)系人、電話、學位授予年度、導師、郵政編碼、詳細地址、學科領(lǐng)域、研究方向、研究層次、稿件標題、英文標題、摘要、英文摘要、關(guān)鍵字、英文關(guān)鍵字、頁數(shù)、字數(shù)、表格數(shù)、圖片數(shù)、基金、基金名稱、創(chuàng)新點、投稿信、上傳類型、文件名、稿件狀態(tài)、編審通過、上傳時間、專家評價、送審狀態(tài)、標題修改、內(nèi)容修改、具體操作。新聞通知信息包括:新聞通知ID、新聞通知內(nèi)容。留言信息包括:留言ID、留言者姓名、留言者單位、留言主題、留言內(nèi)容、手機、email、電話、回復內(nèi)容。審稿專家信息包括:審稿專家ID、審稿專家用戶名、審稿專家真實姓名、性別、年齡、電話、省份、城市、郵政編碼、具體聯(lián)系方式、登錄權(quán)限、角色ID。權(quán)限信息包括:權(quán)限ID、父類權(quán)限ID、權(quán)限類型、權(quán)限內(nèi)容、權(quán)限路徑、權(quán)限提小0角色信息包括:角色ID、角色名、角色描述、登錄權(quán)限。角色對應權(quán)限信息包括:角色對應權(quán)限ID、角色ID、權(quán)限ID。期刊信息:期刊ID、標題、內(nèi)容、英文摘要、作者姓名、學位授予單位、學位授予年度、研究層次、專業(yè)、導師第11頁共33頁
常州大學本科生畢業(yè)設計(論文)用戶信息:用戶ID用戶信息:用戶ID、用戶名、密碼、角色ID、登錄權(quán)限。數(shù)據(jù)庫邏輯結(jié)構(gòu)設計數(shù)據(jù)庫的邏輯結(jié)構(gòu)設計就是把概念結(jié)構(gòu)設計階段設計好的基本E-R圖轉(zhuǎn)化為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)[12]0數(shù)據(jù)庫邏輯結(jié)構(gòu)的設計分為兩個步驟:首先將概念設計所得的E-R圖轉(zhuǎn)化為關(guān)系模型,也就是將實體、屬性和聯(lián)系都轉(zhuǎn)化為相應的關(guān)系模型,主要包括一對一關(guān)系的轉(zhuǎn)換、一對多關(guān)系的轉(zhuǎn)化和多對多關(guān)系的轉(zhuǎn)化,最后再對關(guān)系模型進行優(yōu)化本系統(tǒng)對表進行了適當?shù)奶幚?,同時聯(lián)系了實際情況,增加了一些必要的冗余數(shù)據(jù)項。好處如下:(1)降低程序復雜度。數(shù)據(jù)庫的規(guī)范化其實實質(zhì)是概念的單一化,所以規(guī)范化后第12頁共33頁常州大學本科生畢業(yè)設計(論文)的數(shù)據(jù)庫的表一般都較小,使得表中相關(guān)列最少,這雖然增強了數(shù)據(jù)庫的可維護性,但在系統(tǒng)要完成一些檢索時,需要用復雜的聯(lián)接才能實現(xiàn)。這種操作需要較大開銷,必將導致性能的下降,此時適當增加數(shù)據(jù)的冗余是個不錯的選擇。(2)提高系統(tǒng)的性能。數(shù)據(jù)庫層數(shù)據(jù)冗余無論采用何種體系結(jié)構(gòu),冗余數(shù)據(jù)都可以憑數(shù)據(jù)副本的方式出現(xiàn),副本的存在使許多應用可以“本地性”,大大減少了網(wǎng)絡通信,提高系統(tǒng)的性能;再有當某一節(jié)點出現(xiàn)故障時,由于拷貝副本的存在,系統(tǒng)仍可以對此副本操作,而不至于因一處故障而使系統(tǒng)無法使用,所示適當?shù)娜哂嗍呛苡斜匾?。根?jù)E-R圖可以設計出10張表,分別為投稿作者信息表、稿件信息表、新聞通知信息表、留言信息表、審稿專家信息表、權(quán)限信息表、角色信息表、角色對應權(quán)限信息表、期刊信息表、用戶信息表。如表2.1-2.10所示。表2.1投稿作者信息表authorinfo字段名稱數(shù)據(jù)類型主鍵可否為空描述authorldint是(自增)否作者IDauthorNamevarchar否作者姓名sexvarchar可性別provincevarchar可省份cityvarchar可城巾cellphonevarchar可電話phonevarchar可手機emailvarchar可郵箱postvarchar可郵政編碼contactvarchar可具體聯(lián)系方式workvarchar可單位flagint否登錄權(quán)限userIdint否編輯ID表2.2稿件信息表confile字段名稱數(shù)據(jù)類型主鍵可否為空描述contributeIdint是(自增)否稿件IDauthoredint否作者IDthorNamevarchar可投稿作者姓名workvarchar可學位授予單位linkmanvarchar可稿件聯(lián)系人phonevarchar可電話cellphobevarchar可郵政編碼emailvarchar可詳細地址postvarchar可學科領(lǐng)域addressvarchar可研究方向第13頁共33頁
常州大學本科生畢業(yè)設計(論文)表2.2稿件信息表confile(續(xù))researchvarchar可研究方向subjectvarchar可主題levelvarchar可研究層次titlevarchar可稿件標題engtitlevarchar可英文標題abstractvarchar可摘要engabstractvarchar可英文摘要keywordvarchar可關(guān)鍵字engkeywordvarchar可英文關(guān)鍵字pageint可頁數(shù)wordint可字數(shù)tabint可表格數(shù)picint可圖片數(shù)fundint可是否基金fundNamevarchar可基金名稱creationvarchar可創(chuàng)新點lettervarchar可稿件信contypevarchar可上傳類型fileFileNamevarchar可文件名fstatusvarchar可審稿狀態(tài)fpassvarchar可編審通過ftimevarchar可上傳時間fadvicevarchar可審稿意見fsendvarchar可送審狀態(tài)fmodtitlevarchar可主題修改fmodconvarchar可內(nèi)容修改foperationvarchar可具體通知內(nèi)容reviewerIdin否審稿專家IDuserIdint否編輯ID表2.3新聞通知信息表event字段名稱數(shù)據(jù)類型主鍵可否為空描述eventIdint是(自增)否新聞通知IDcontentvarchar可具體內(nèi)容表2.4留言信息表leaveword字段名稱數(shù)據(jù)類型主鍵可否為空描述leaveIdint是(自增)否留言IDleaveNamevarchar可留言者姓名第14頁共33頁
常州大學本科生畢業(yè)設計(論文)表2.4留言信息表leaveword(續(xù))字段名稱數(shù)據(jù)類型主鍵可否為空描述workvarchar可單位cellphonevarchar可電話emailvarchar可郵箱phonevarchar可短信replyvarchar可回復內(nèi)容subjectvarchar可留言主題contentvarchar可留百內(nèi)容表2.5審稿專家信息表reviewerinfo字段名稱數(shù)據(jù)類型主鍵可否為空描述reviewerIdint是(自增)否審稿專家IDreviewerUnamevarchar可審稿專家用戶名reviewerNamevarchar可真實姓名sexvarchar可性別ageint可年齡telvarchar可電話provincevarchar可省份cityvarchar可城巾postvarchar可郵政編碼contactvarchar可具體聯(lián)系方式flagint可登錄權(quán)限userIdint可編輯ID表2.6權(quán)限信息表rightinfo字段名稱數(shù)據(jù)類型主鍵可否為空描述rightCodevarchar是否權(quán)限等級編號rightParentCodevarchar可父權(quán)限等級編號rightTypevarchar可權(quán)限類型rightTextvarchar可權(quán)限內(nèi)容rightUrlvarchar可權(quán)限路徑rightTipvarchar可權(quán)限提示表2.7角色信息表roleinfo字段名稱數(shù)據(jù)類型主鍵可否為空描述roleIdint是(自增)否角色IDroleNamevarchar可角色名稱roleDescvarchar可角色描述flagint可登錄權(quán)限第15頁共33頁
常州大學本科生畢業(yè)設計(論文)表2.8角色對應權(quán)限信息表roleright字段名稱數(shù)據(jù)類型主鍵可否為空描述rr_Idint是(自增)否角色對應權(quán)限IDroleIdint可角色IDrightCodevarchar可權(quán)限等級編號表2.9期刊信息表thesis字段名稱數(shù)據(jù)類型主鍵可否為空描述thesisIdint是(自增)否期刊IDchineseNamevarchar否期刊標題contentvarchar可期刊內(nèi)容abstractvarchar可英文摘要authorNamevarchar可作者姓名dgUnitvarchar可學位授予單位agAnnualvarchar可學位授予年度levelvarchar可研究層次majorvarchar可專業(yè)supervisorint可導師表2.10用戶信息表userinfo字段名稱數(shù)據(jù)類型主鍵可否為空描述userIdint是(自增)否用戶IDuserNamevarchar可用戶名pwdvarchar可用戶密碼roleIdint可角色IDflagint可登錄權(quán)限系統(tǒng)環(huán)境需求本系統(tǒng)對環(huán)境的需求,可以分為三個方面:數(shù)據(jù)庫環(huán)境、應用程序開發(fā)環(huán)境、運行環(huán)境。(1)數(shù)據(jù)庫環(huán)境本系統(tǒng)使用的數(shù)據(jù)庫是MySQL,它是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。NavicatforMySQL是一個強大的MySQL數(shù)據(jù)庫服務器管理和開發(fā)工具。它可以與任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括觸發(fā)器、存儲過程、函數(shù)、事件、視圖、管理用戶等等。它不僅對專業(yè)開發(fā)人員來說是非常尖端的技術(shù),而且對于新手來說也易學易用[13]o(2)應用程序開發(fā)環(huán)境本系統(tǒng)采用的開發(fā)工具是MyEclipseforSpring8.6,它提供了對SpringMVC的強大支持功能,不僅針對Spring的專業(yè)編輯器,還針對Spring項目的創(chuàng)建向?qū)Чδ?,使得?6頁共33頁常州大學本科生畢業(yè)設計(論文)Spring開發(fā)者可以更輕松的通過MyEclipseforSpring8.6快速創(chuàng)建一個基于Spring的應用。除此之外MyEclipseforSpring8.6也提供了MyEclipse8.6全部特性支持,這讓MyEclipseforSpring8.6比起MyEclipse8.6幾乎是有過之而無不及[14]。(3)運行環(huán)境本系統(tǒng)開發(fā)時采用的操作系統(tǒng)是Windows7。運行時,推薦內(nèi)存512MB以上,處理器采用主頻500Mhz以上的處理器。硬盤空間要求至少要512M。服務器可以使用Tomcat6.0以上版本,也可以使用MyEclipseforSpring8.6自帶的Tomcat服務器。3系統(tǒng)的實現(xiàn)總體設計結(jié)束后,就要進行系統(tǒng)的實現(xiàn),即進行編碼。本章主要介紹一些核心模塊的實現(xiàn),如數(shù)據(jù)庫連接、用戶登錄、在線投稿、審核稿件等功能。數(shù)據(jù)庫連接本系統(tǒng)通過spring整合hibernate,再使用hibernate去連接數(shù)據(jù)庫,所以無需配置hibernate.cfg.xml文件,使用的是spring的hibernateTemplate的方法。首先,需要在文件applicationContext.xml中酉己置數(shù)據(jù)源(dataSourcebean和session工廠(sessionFactorybead15]。其中hibernate.dialect是hibernate的方言,表示允許hibernate針對特定的關(guān)系數(shù)據(jù)庫來生成優(yōu)化的sql語句;hibernate.connection.driver_classl:連接數(shù)據(jù)庫的JDBC驅(qū)動類。hibernate.connection.url是連接數(shù)據(jù)庫的絕對路徑;hibernate.connection.username是連接數(shù)據(jù)庫時使用的用戶名;hibernate.connection.password是連接數(shù)據(jù)庫的密碼;hibernate.show_sql是輸出所有sql語句至U控制臺;hibernate.format_sql在log和console中打印出規(guī)范的的SQL語句。以下是applicationContext.xml文件中關(guān)于數(shù)據(jù)庫連接的具體內(nèi)容:<!--DataSource--><beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driverClassName"value="com.mysql.jdbc.Driver”/><propertyname="url"value="jdbc:mysql:〃localhost:3306/academic?useunicode=true&characterEncoding=utf-8”/><propertyname="username"value="root"/><propertyname="password"value="123"/></bean><!--SessionFactory--><beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><propertyname="dataSource"ref="dataSource"/><propertyname="hibernateProperties"><props>第17頁共33頁常州大學本科生畢業(yè)設計(論文)<propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><propkey="hibernate.show_sql”>true</prop><propkey="hibernate.format_sql">true</prop></props></property><propertyname="mappingDirectoryLocations"><list><value>classpath:com/aca/entity</value></list></property></bean><propertyname="hibernate.format_sql">true</property>登錄模塊的實現(xiàn)用戶進入登錄頁面時,鼠標的焦點會默認停留在用戶名輸入框內(nèi),即在頁面加載的時候調(diào)用onload="myfocus()"方法,從而等待用戶的輸入。點擊登錄按鈕時,會調(diào)用user.js文件中的checkLogin()方法,首先去掉用戶名中的空格,然后再判斷是否為空,如果用戶名為空,則提示“用戶名不能為空”,如果密碼為空,同樣提示“密碼不能為空”,最后判斷用戶名、密碼是否正確,如果正確則進入系統(tǒng),否則返回登錄界面。如果是第一次登錄本系統(tǒng)的讀者、投稿作者沒有賬號,可以點擊“注冊”按鈕,跳轉(zhuǎn)到注冊界面。user.js文件中的與登錄有關(guān)的js代碼如下:Stotype.trim=function()//去掉空格{returnthis.replace(/(A\s*)|(\s*$)/g,"");}functioncheckLogin()//檢查用戶是否按要求輸入登錄信息{if($("#username").val().trim()==""){alert('用戶名不能為空,);document.getElementById("username").focus();returnfalse;}if($("#password").val().trim()==""){alert('密碼不能為空,);document.getElementById("password").focus();returnfalse;}}當?shù)卿浶畔⒍驾斎胪瓿珊?,點擊“登錄”按鈕,系統(tǒng)會執(zhí)行user/user!doLogin.action,首先在struts.xml中找到name為"useL的action配置文件,再執(zhí)行UserinfoAction類中的doLogin方法,最后doLogin方法調(diào)用checkUser(Userinfou)lk務,實現(xiàn)和數(shù)據(jù)庫交互。登錄頁面如圖3.1所示。第18頁共33頁常州大學本科生畢業(yè)設計(論文)圖3.1登錄頁面核心代碼如下:<!--UserinfoAction-->publicStringdoLogin()throwsException{Userinfou=userService.checkUser(user);倜用checkUser業(yè)務if(u==null){return"index";//用戶不存在返回登錄頁面}//把用戶信息u寫入session中ServletActionContext.getRequest().getSession().setAttribute("USER",u);//根據(jù)角色編號得到角色信息introleId=u.getRoleinfo().getRoleId();StringmenuStr=buildDTreeMenuString(roleService.getRoleWithRightsByRoleId(roleId));ServletActionContext.getRequest().getSession().setAttribute("MENU_STRING",menuStr);return"main";}<!--UserServiceImpl_H-->publicUserinfocheckUser(Userinfou){Stringhql="fromUserinfouleftouterjoinfetchu.roleinfowhereu.flag!=-1andu.userName=?andu.pwd=?";//13詢數(shù)據(jù)庫,驗證用戶名、密碼Object口args=newObject[]{u.getUserName(),u.getPwd()};List<Userinfo>users=commonDao.list(hql,args);if(users==null||users.size()==0){returnnull;}returnusers.get(0);}注冊模塊的實現(xiàn)注冊模塊與登錄模塊類似,進入注冊頁面后鼠標的焦點會默認停留在登錄名處,調(diào)第19頁共33頁
常州大學本科生畢業(yè)設計(論文)用的方法也是onload="myfocus()"。用戶需填寫登錄名、密碼、密碼確認、郵箱等信息,每項都不能為空,否則會提示重新輸入,并且焦點會落到出錯的輸入框中。具體驗證代碼如下:functioncheckRegister(){varf=document.myform;q=f.emails.value.indexOf("@");if($("#uname").val().trim()==""||($("#uname").val().length<6)){alert('請輸入至少6個字符的用戶名!');document.getElementById("uname").focus();//X寸應name獲得焦點returnfalse;}elseif($("#pwd").val().trim()==""||($("#pwd").val().length<6)){alert('請輸入至少6個字符的密碼!');document.getElementById("pwd").focus();returnfalse;}elseif($("#pwd").val()!=($("#pwds").val())){alert('2次密碼必須相同!’);document.getElementById("pwds").focus();returnfalse;}elseif(q==-1){alert("請輸入有效的電子郵件地址");f.emails.focus();returnfalse;}}所有信息填寫完后點擊“立即注冊”,便會執(zhí)行user/user!doRegister.action具體步驟與登錄類似,這里不做具體說明。注冊界面如圖3.2所示。登錄名:;密碼;再次輸入密碼:性別工電子郵件地址:您的角色:I登錄名:;密碼;再次輸入密碼:性別工電子郵件地址:您的角色:*(為提高安全性,清選用6位及以上字符)兩次密碼需相同)后男「女對外公開,僅用干聯(lián)系)|讀者用戶二]立即注冊重新填寫圖3.2注冊頁面用戶管理模塊的實現(xiàn)用戶管理模塊涉及到投稿作者和審稿專家兩類用戶,由于都有增、刪、查、改操作,所以這里只詳細描述投稿作者模塊,審稿專家模塊與其類似。點擊左邊菜單欄“投稿作者”,便會列出所有投稿作者的詳細信息,系統(tǒng)管理員可以按照要求實現(xiàn)對用戶基本信息的管理。第20頁共33頁常州大學本科生畢業(yè)設計(論文)增加投稿作者信息點擊新增圖標,系統(tǒng)首先會執(zhí)行onclick="toadd()"事件,然后去author.js文件中找至1Jtoadd()方法,接著根據(jù)author!toAdd.action找至IAuthorAction中對應的toAdd()方法,此方法中沒有對數(shù)據(jù)庫的操作,而是直接跳轉(zhuǎn)到新增頁面add.jsp,具體跳轉(zhuǎn)路徑在struts.xml中配置。相關(guān)代碼如下:<!—author.js--〉functiontoadd(){window.location.href="author!toAdd.action”;〃跳轉(zhuǎn)至UAuthorAction中的toAdd()內(nèi)}<!--AuthorAction-->publicStringtoAdd()throwsException{return"add";//跳轉(zhuǎn)到新增頁面}在新增頁面中,需填寫真實姓名、固定電話、郵箱等信息,帶*的為必填內(nèi)容,其它內(nèi)容選填。點擊“保存”,首先會執(zhí)行onclick="add()”事件,同樣需要先到author.js文件中找到對應的方法,再去AuthorAction中找到doAdd()方法。該方法中會調(diào)用業(yè)務層內(nèi)的addUser方法,最終在addUser()內(nèi)實現(xiàn)對數(shù)據(jù)庫的增加操作。新增頁面如圖3.3所示。圖3.3新增投稿作者頁面核心代碼如下:<!—author.js--〉functionadd()//添加投稿作者的驗證操作{varauthorName=document.addform["author.authorName"].value.trim();vartel=document.addform["author.phone"].value.trim();varpost=document.addform["author.post"].value.trim();/威得由B編varemail=document.addform["author.email"].value.trim();varwork=document.addform["author.work"].value.trim();varcontact=document.addform["author.contact"].value.trim();第21頁共33頁常州大學本科生畢業(yè)設計(論文)if(authorName==""){alert('真實姓名不能為空,);document.getElementById("name1").focus();/圖I得焦點return;}if(tel==""){alert('固定電話不能為空,);document.getElementById("name2").focus();return;},,document.addform.submit();}<!--AuthorAction-->publicStringdoAdd()throwsException{booleanflag=authorService.addUser(author);HttpServletResponserespose=ServletActionContext.getResponse();respose.setContentType("text/html;charset=utf-8");殷置編碼PrintWriterout=respose.getWriter();if(flag){out.println("<script>alert('保存成功!')</script>");out.println("<script>window.location.href='author!toList.action';</script>");}else{out.println("<script>alert('保存失敗!')</script>");}returnnull;}添加成功后頁面如圖3.4所示。騙號真賣姓名性別省份固定電話移動電話匚郵箱郵褐詳珊通訊施址單位1李剛男江蘇省常州05198S2W1015454^6164]212230all3,12張三勇江蘇南京ssssms1890^08908■A'oucja^232122江蘇南京棲霞區(qū)曲府圖3.4添加成功后的頁面刪除投稿作者信息當點擊刪除圖標時會彈出確認框,詢問是否確認刪除所選的投稿作者信息,如果選擇取消,則返回,不刪除所選信息。如果選擇確定,則執(zhí)行author!del.action?author.authorId并根據(jù)struts.xml文件中的配置,找到del()方法,調(diào)用業(yè)務層的deleteAuthorById(cId)方法,實現(xiàn)刪除操作。刪編言真實姓名性別省份1|李剛里|江蘇省弓長三|鵑江蘇除貝面改口圖3.5所不。來自網(wǎng)頁的港國編詳珈通訊地址單位2230allallI?確認刪除用戶名為胃S'的投精眸言?2122江蘇南京棲霞區(qū)政府首頁壬二頁會取消圖3.5刪除投稿作者第22頁共33頁常州大學本科生畢業(yè)設計(論文)刪除成功后顯示的頁面如圖3.6所示。圖3.6刪除成功后的頁面核心代碼如下:<!--AuthorAction-->publicStringdel()throwsException{intcld=author.getAuthorId();authorService.deleteAuthorByld(cId);HttpServletResponseresponse=ServletActionContext.getResponse();response.setContentType("text/html;charset=utf-8");PrintWriterout=response.getWriter();out.println("<script>alert('刪除成功!')</script>");out.println("<script>window.location.href='author!toList.action';</script>");returnnull;}<!--AuthorServiceImpl_H-->publicvoiddeleteAuthorById(intcId){commonDao.del(Authorinfo.class,cId);}查找投稿作者信息首先在輸入框內(nèi)輸入需要查找的投稿作者姓名的關(guān)鍵字,然后點擊查找圖標,便會執(zhí)行user/author!toList.action?spb.currPage=1其中spb是分頁插件,spb.currPage=1表示查詢結(jié)果默認顯示在第一頁中。然后根據(jù)struts.xml文件中的配置找到AuthorAction中對應的toList()方法,接著調(diào)用業(yè)務層的listByPage()方法,實現(xiàn)對數(shù)據(jù)庫的查詢操作。查詢頁面如圖3.7所示。用戶名詢騙號苴實姓名性別省份城市固定電引移動電話郵箱郵編詳細通訊地址單位1張凡耳江蘇省揚州0519SS2464r1531461416416S.com一■b-1Lral2李明不山西省太原0^19SS24641218913112315163.comL543U?j魏征遼寧省沈陽0519SS2464H16"46415456.匚om145611aj4衛(wèi)華女吉林省卡春0519S82464321464B45151dg163.ccin7S?461*圖3.7查詢投稿作者查詢結(jié)果顯示如圖3.8所示。編號直實姓名性到省惜城市固定電話移動電話郵箱郵幅詳細通訊地址迎1李明勇[山西省區(qū)同卜51988241^1543Ua2al首頁圖3.8查詢結(jié)果第23頁共33頁常州大學本科生畢業(yè)設計(論文)核心代碼如下:<!--AuthorAction-->publicStringtoList()throwsException{SPageBeanspb=newSPageBean();initSPB(spb);authorService.listByPage(author,spb);ServletActionContext.getRequest().setAttribute("SPB",spb);return"list";}<!--AuthorServiceImpl_H-->publicvoidlistByPage(Authorinfoauthor,SPageBeanspb){Stringhql="fromAuthorinfoauthorwhere1=1";if(author!=null){if(!SystemUtil.isBlankString(author.getAuthorName())){hql+="andauthor.authorNamelike'%"+author.getAuthorName()+"%'";}}commonDao.listByPage(hql,spb);}修改投稿作者信息點擊需要修改的投稿作者對應的圖標,便會執(zhí)行author!toEdit.action?author.authorId然后根據(jù)struts.xml文件的配置,會先跳轉(zhuǎn)到edit.jsp頁面。edit頁面會顯示所選擇的投稿作者的相關(guān)信息,管理員可以在需要修改的輸入框中刪除原來的信息,填寫新的信息。確認修改完畢時點擊“保存”按鈕,首先執(zhí)行user/author!doEdit.action,然后根據(jù)struts.xml文件中的配置,找到AuthorAction中對應的doEdit()方法,該方法調(diào)用業(yè)務層的updateAuthorW1hEdit()方法,實現(xiàn)對數(shù)據(jù)庫的修改操作。修改頁面如圖3.9所示?;拘畔ⅰ笧楸靥钚畔?俁存重填返回圖3.9修改投稿作者姓名第24頁共33頁
常州大學本科生畢業(yè)設計(論文)修改成功后顯示的頁面如圖3.10所示褊同直實姓名性別省份臟而固定電話移動電更J郵箱郵編詳?shù)酵ㄓ嵉刂穯挝?張凡男江蘇省揚州O519SS24641715314^14164a2163.mm221220al312李明uui^西11山西省1太原O519882W1218913112315^bg163,com15431432圖3.10修改姓名成功后的頁面核心代碼如下:<!--AuthorAction-->publicStringdoEdit()throwsException{authorService.updateAuthorWithEdit(author);HttpServletResponseresponse=ServletActionContext.getResponse();response.setContentType("text/html;charset=utf-8");PrintWriterout=response.getWriter();out.println("<script>alert('編輯成功!')</script>");out.println("<script>window.location.href='author!toList.action';</script>");returnnull;}<!--AuthorServiceImpl_H-->publicvoidupdateAuthorWithEdit(Authorinfoc){Authorinfoa=(Authorinfo)commonDao.get(Authorinfo.class,c.getAuthorId());a.setAuthorName(c.getAuthorName());a.setSex(c.getSex());}在線投稿模塊的實現(xiàn)投稿作者點擊左側(cè)“在線投稿”欄目,首先會看到投稿分為5步。作者姓名默認是登錄名,值是從session中獲得,一般情況下無需修改。接著要填寫稿件聯(lián)系人信息,帶*為必填內(nèi)容,具體表單驗證都在contribute.js文件中。每次點擊“下一步”時,會執(zhí)行user/contribute!toList1.action?contributeId,首先根據(jù)struts.xml中相關(guān)配置,找至UContribute中的toList1()方法,然后調(diào)用業(yè)務層的addConfile和updateConfile方法,最終實現(xiàn)對數(shù)據(jù)庫中confile表的新增和更新操作。這里要注意的是由于每次執(zhí)行下一步時,并不是重新添加一個稿件,而是接著上一步完善信息,所以配置applicationContext.xml時Contribute的屬性并沒有寫上scope="prototype",止匕屬性不寫上時表示共用一個action。部分在線投稿頁面如圖3.11所示。投稿步舞;1填寫作者信息工填寫稿件信息3茸寫稿件擴展信息4上傳全文工完成投稿位予位
位予位
學授單作者姓名*|tomcat稿件聯(lián)系人聯(lián)系人姓名.固定電話.圖3.11部分在線投稿頁面第25頁共33頁常州大學本科生畢業(yè)設計(論文)當5步全部按要求填寫完后就可以確認投稿,所投的稿件便會在專家工作區(qū)內(nèi)顯示出來,此時稿件便處于等待審核狀態(tài),具體狀態(tài)可在“我的審核進度”中查看。核心代碼如下:<!--Contribute-->publicStringtoList()throwsException{return"list";}//第一步publicStringtoList1()throwsException{confileService.addConfile(confile);return"list1";}//第二步publicStringtoList2()throwsException{confileService.updateConfile(confile);return"list2";}//第三步publicStringtoList3()throwsException{confileService.updateConfile1(confile);return"list3";}//第四步publicStringtoList4()throwsException{return"list4";}//第五步<!--ConfileServiceImpl_H-->publicbooleanaddConfile(Confilec){Serializableid=commonDao.add(c);/新增操作returnid!=null;}審核稿件模塊的實現(xiàn)點擊“審理稿件”字樣開始審核稿件,首先會跳出一個新的頁面,專家可在修改標題、修改內(nèi)容一欄寫上應該如何修改,以便作者查看,最后給稿件填寫意見,如果審理完成則選擇“送審”,此稿件便會傳遞到編輯部,編輯再進一步聯(lián)系作者。系統(tǒng)首先執(zhí)行verity!toVerity.action?confile.contributeId,根據(jù)struts.xml文件中的配置跳轉(zhuǎn)到開始審核頁面,然后執(zhí)行user/verity!doVerity.action?contributeId,實現(xiàn)對數(shù)據(jù)庫的更新操作。頁面參數(shù)設置:window.open表示彈出新窗口的命令;height表示窗口高度;width表示窗口寬度;top表示窗口距離屏幕上方的象素值;left表示窗口距離屏幕左側(cè)的象素值;toolbar表示是否顯示工具欄,yes為顯示;menubar,scrollbars表示菜單欄和滾動欄;resizable表示是否允許改變窗口大小,yes為允許;location"表示是否顯示地址欄,yes為允許;status表示是否顯示狀態(tài)欄內(nèi)的信息(通常是文件已經(jīng)打開),yes為允許[16]。審核稿件頁面如圖3.12所示。稿件編號二3稿件標題二a域改標題:.編校正文二申福意見:|審理中二|編審未通過三]|暫不送審三]保存返回圖3.12審核稿件界面第26頁共33頁常州大學本科生畢業(yè)設計(論文)核心代碼如下:functionverity(contributeId){window.open("verity!toVerity.action?confile.contributeId="+contributeId,"Sample","fullscreen=no,location=no,toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=550,height=280,left=400,top=300")}<!--VerityAction-->publicStringdoVerity()throwsException{verityService.updateConfile3(confile);HttpServletResponserespose=ServletActionContext.getResponse();PrintWriterout=respose.getWriter();out.println("<script>window.close();</script>");out.println("<script>opener.location.href=opener.location.href</script>");//刷新returnnull;}4系統(tǒng)的測試及難點分析系統(tǒng)測試是針對整個系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了任務書的要求,找出與需求不符或與之矛盾的地方,從而提出更加完善的方案。系統(tǒng)測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯誤原因和位置,然后進行改正。測試對象不僅僅包括需測試的軟件,還要包含軟件所依賴的硬件、外設甚至包括某些數(shù)據(jù)、某些支持軟件及其接口等[17]0以下是本系統(tǒng)的兩個測試用例,一個是對查詢稿件信息功能的測試,另一個是對能否準確通知作者修改的測試。系統(tǒng)的測試查詢稿件功能測試(1)當查詢條件為標題關(guān)鍵字,輸入一個不存在的標題關(guān)鍵字進行測試。查詢條件為標題關(guān)鍵字,輸入一個不存在的標題關(guān)鍵字。輸入關(guān)鍵字為“看書”,查詢不到稿件信息,如圖4.1所示。標隨無豌字.看毛I投稿人姓名.稿件狀態(tài):[賺甲瓦拉態(tài):Lt已審枝,XJ(未南檢)端而通肘:I(已遢過)加《未通道》|送申:I(已遵市)《未遞畝》圖4.1按標題關(guān)鍵字查詢稿件信息圖測試結(jié)果表明:當查詢條件為標題關(guān)鍵字,輸入一個不存在的關(guān)鍵字時,沒有稿件信息顯示。(2)當查詢條件為多個時,是否搜索出符合條件的正確信息。輸入標題關(guān)鍵字“談”,查詢到了兩條稿件信息,如圖4.2所示。第27頁共33頁
常州大學本科生畢業(yè)設計(論文)圖4.2按一個條件關(guān)鍵字“談”查詢稿件信息圖圖4.2按一個條件關(guān)鍵字“談”查詢稿件信息圖重新輸入關(guān)鍵字“談”,再輸入稿件狀態(tài)“1”,查詢到了一條稿件信息,如圖4.3所示。標■播頭犍字;誠會輒人姓名?弗件狀由:小—按東市稿狀毒:1(己用假)口t未審俵)照審通過:I(己通過,JH未通過》醫(yī)用:L〔己醫(yī)審3。(卡送本》圖4.3按兩個條件查詢稿件信息圖怵苑關(guān)融非淵裂瘠人姓著二,諳件法根I|「接宙樂范狀奈:1{已由極b。《赤審接}誦甲因過:i(已it過>。(未通過[醫(yī)麗:l{已醫(yī)雨)口(未醫(yī)甲,芾號將件標題學科糧何弭究方向舐龕層次市將狀窸送審申根精件正交HI除1淺讀姓講速濟與雷崖輕濟宇實用技卡0Q審理P件笆Itl除12淺設藥品醫(yī)藥衛(wèi)生藥品學顯配研交1斥理通件亙石汁1除百頁1瓦頁測試結(jié)果表明:查詢條件為多個時,能把符合條件的稿件信息準確顯示出來。通知作者修改稿件測試由于修改、退稿、錄用具體操作類似,所以這里只測試一個修改操作。首先編輯點擊郵件圖標,在彈出的頁面中選擇具體通知方式為“修改稿件”,然后保存。稿件信息仍然沿用標題為“論藥品”的稿件,修改操作的頁面如圖4.4所示。預期測試結(jié)果應該是在作者工作區(qū)的稿件箱中收到編輯的修改通知,未通知修改時稿件箱界面如圖4.5所示,實際測試后稿件箱如圖4.6所示。稿件編號:3稿件標題:論藥品審稿意見:不合格具體方式:修改稿件/保存返回圖4.4選擇通知方式為修改當前位置二我的稿件箱〉修改中的稿件改的件
修中福稿件標題改的件
修中福稿件標題發(fā)表時間需修改地方無修改中的稿件
圖4.5未通知修改前的稿件箱第28頁共33頁常州大學本科生畢業(yè)設計(論文)當前位置:芨的稿件箱,修改中的稿件改的件修中福稿件標題發(fā)表時間需修改地方1論藥品2012-2^17:15^5標題:初改內(nèi)容士內(nèi)客中有錯別字!圖4.6通知修改后的稿件箱測試結(jié)果表明:編輯通知作者修改稿件時,作者稿件箱能收到修改信息4.2開發(fā)過程中遇到的問題及采用的解決方法本系統(tǒng)在開發(fā)過程中主要遇到如下幾個問題:(1)稿件上傳的界面友好問題。本系統(tǒng)上傳功能是通過struts2實現(xiàn)的,由于在實際應用中,用戶可能會不小心上傳不符合類型的文件,所以必須給予上傳文件類型限制。起初在struts.xml中做相關(guān)的類型限制,雖然阻止了不符合規(guī)定類型的文件上傳,但實際界面并不友好,顯示的是struts2默認的出錯提示界面,如圖4.7所示。開發(fā)人員能夠知道什么意思,普通用戶就未必可以理解了。解決方法是不在struts.xml中限制文件類型,而是在javaScript中截取文件后綴名,判斷是否符合要求,如果符合要求則允許上傳,不符合則提示“上傳文件只能是[.pdf],[.doc],[.docx],[.txt]類型的!界面如圖4.8所■Conteiit-T;penotallowedthvFileupload_49ac2dc_1116ebl036f_'flffi_00000006unpapplication^isioallowed:upload2班;de1116ebl0?6e00000006tmpapplication\isio圖4.7struts2默認出錯頁面上傳全文(上傳附件須小于41,允許的文件類型為:pdfd優(yōu)dosm)|一件全文""口嫩豆莢手機精靈IWanMuJiaeH白||瀏覽一,|「上一圖4.8文件上傳類型驗證(2)在線投稿分步提交功能。在線投稿分為5步,每次執(zhí)行下一步會對數(shù)據(jù)庫產(chǎn)生相關(guān)操作。提交的時候,每執(zhí)行下一步時都會在數(shù)據(jù)庫中重新提交一次稿件,就會提第29頁共33頁常州大學本科生畢業(yè)設計(論文)交了5份稿件,而這肯定是不符合要求的。問題是因為在配置spring時忽略了action的狀態(tài)。scope="prototype"表示每次請求都會創(chuàng)建一個新的action[18\不寫這個屬性則默認公用一個action。解決方法是刪除scope="prototype",再次分步提交時,每次再數(shù)據(jù)庫中只產(chǎn)生一條記錄了。相關(guān)代碼如下:<beanid="contributeAction"class="com.aca.action.Contribute"><propertyname="confileService"ref="confileService"/></bean>(3)antlr-2.7.2.jar架包沖突問題。ssh組合完成后,當執(zhí)行hibernate的HQL查詢時,報錯:java.lang.NoSuchMethodError:antlr.collections.AST.getLine()I。雖然每次重新部署后,刪掉tomcat服務器上的antlr-2.7.2.jar架包就不會報錯,但這樣比較繁瑣。解決方法是通過修改包的配置來根本解決架包沖突問題。具體操作如下:①修改MyEclipse的安裝目錄的配置文件:G:\Genuitec\MyEclipse8.6\configuration\org.eclipse.osgi\bundles\105\1\.cp\preferences.ini去掉其中的MYECLIPSE_STRUTS2_DATA_HOME/2.1/core/antlr-2.7.2.jar;\然后再刪除antlr-2.7.2.jar:有兩處G:\Genuitec\MyEclipse8.6\configuration\org.eclipse.osgi\bundle
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粉末冶金模具工操作知識能力考核試卷含答案
- 循環(huán)冷卻水操作工崗前安全生產(chǎn)規(guī)范考核試卷含答案
- 民族拉弦彈撥樂器制作工持續(xù)改進競賽考核試卷含答案
- 自動相關(guān)監(jiān)視系統(tǒng)機務員班組評比競賽考核試卷含答案
- 排土機司機復試能力考核試卷含答案
- 貴金屬精煉工操作技能測試考核試卷含答案
- 美容美發(fā)器具制作工崗前安全實操考核試卷含答案
- 2024年甘南縣招教考試備考題庫附答案
- 2024年隨州市特崗教師招聘真題題庫附答案
- 航空運輸服務規(guī)范與操作手冊(標準版)
- 老年人綜合能力評估實施過程-評估工作文檔及填寫規(guī)范
- cobas-h-232心肌標志物床邊檢測儀操作培訓
- 第六講通量觀測方法與原理
- 林規(guī)發(fā)防護林造林工程投資估算指標
- GB/T 23821-2022機械安全防止上下肢觸及危險區(qū)的安全距離
- GB/T 5563-2013橡膠和塑料軟管及軟管組合件靜液壓試驗方法
- GB/T 16895.6-2014低壓電氣裝置第5-52部分:電氣設備的選擇和安裝布線系統(tǒng)
- GB/T 11018.1-2008絲包銅繞組線第1部分:絲包單線
- GA/T 765-2020人血紅蛋白檢測金標試劑條法
- 武漢市空調(diào)工程畢業(yè)設計說明書正文
- 麻風病防治知識課件整理
評論
0/150
提交評論