當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]投稿與審稿系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

計(jì)算機(jī)應(yīng)用技術(shù)的進(jìn)步,使期刊編輯流程信息化和網(wǎng)絡(luò)化成為主要趨勢。在線審稿、投稿系統(tǒng)縮短了作者的投稿周期,加快了編輯和專家的審稿流程,為作者與編輯進(jìn)行即時(shí)溝通架設(shè)了橋梁,方便讀者、作者在線閱讀稿件。
    目前出現(xiàn)的在線投稿、審稿系統(tǒng)采用ASP技術(shù)。ASP是微軟推出的一種技術(shù),只能在Windows操作系統(tǒng)上運(yùn)行,Windows本身的所有問題都會(huì)一成不變地累加到了它的身上。安全性、穩(wěn)定性、跨平臺(tái)性都會(huì)因?yàn)榕cWindows的捆綁而顯現(xiàn)出來。由于ASP程序采用非編譯語言,大大降低了程序源代碼的安全性,如果黑客侵入站點(diǎn),就可以獲得ASP源代碼;每當(dāng)客戶端打開一個(gè)ASP網(wǎng)頁時(shí),服務(wù)器都必須將該ASP程序從頭到尾重讀一遍,并加以編譯執(zhí)行,最后送出標(biāo)準(zhǔn)的HTML格式文件給客戶端,因而影響了運(yùn)行速度。而JSP是跨平臺(tái)的,可以在所有的服務(wù)器操作系統(tǒng)上運(yùn)行。JSP源程序不大可能被下載,一些程序完全可以放到不對外的目錄中。JSP在執(zhí)行以前先被編譯成字節(jié)碼(byte code),字節(jié)碼由Java虛擬機(jī)(Java Virtual Machine)解釋執(zhí)行,比源碼解釋的效率高;服務(wù)器上還有字節(jié)碼的Cache機(jī)制,能提高字節(jié)碼的訪問效率。并且JSP結(jié)合MVC模式將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,可以最大化地重用代碼,具有易維護(hù)性。綜上所述本系統(tǒng)采用JSP[1]技術(shù)。
1 系統(tǒng)功能需求概述
    投稿、審稿系統(tǒng)的主要目標(biāo)是為了簡化傳統(tǒng)手工工作流程,縮短稿件在傳遞過程中的時(shí)間,使投稿人審稿人的交流便利順暢,縮短論文發(fā)表的時(shí)滯[2]。
 本系統(tǒng)分為投稿模塊與審稿模塊。投稿模塊包含了以下5個(gè)功能:用戶注冊、用戶登陸、在線投稿、稿件狀態(tài)查詢、修改個(gè)人信息。在線投稿功能包括填寫稿件信息,上傳稿件,稿件信息存儲(chǔ)在數(shù)據(jù)庫中,稿件上傳到系統(tǒng)指定的硬盤目錄中,投稿系統(tǒng)自動(dòng)給每個(gè)稿件唯一的編號,以便編輯人員對稿件正確處理。審稿模塊包含以下7個(gè)功能:權(quán)限管理、用戶登錄、查看稿件、稿件轉(zhuǎn)發(fā)、稿件審理、在線退修、擬錄稿件、退稿。權(quán)限管理功能:管理員對各個(gè)使用者的權(quán)責(zé)給予其所需的權(quán)限來瀏覽相應(yīng)的頁面,使用相應(yīng)的操作,此系統(tǒng)的管理員是編輯;查看稿件功能:審稿模塊的功能是可以查看稿件的基本信息,并可以下載原稿;稿件審理功能:評價(jià)稿件,將評價(jià)錄入到數(shù)據(jù)庫中。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)總體設(shè)計(jì)

    本文根據(jù)傳統(tǒng)手工流程建立作者、編務(wù)、編輯、副主編、主編、專家6個(gè)角色,系統(tǒng)方案圖如圖1。這些角色可以通過編輯部網(wǎng)站遠(yuǎn)程訪問編輯部的數(shù)據(jù)庫。其中編輯角色相當(dāng)于一個(gè)中部樞紐,查看編務(wù)發(fā)來的稿件,評價(jià)稿件,把稿件轉(zhuǎn)發(fā)給副主編、專家,查看副主編、專家對稿件的評價(jià),決定對稿件進(jìn)行退稿、退修、錄用等操作。編輯具有角色管理的權(quán)限,刪除、添加、修改各個(gè)角色及其功能等。
 本文設(shè)置兩個(gè)相對獨(dú)立的數(shù)據(jù)庫(投稿數(shù)據(jù)庫、工作數(shù)據(jù)庫),這樣,可把來自作者的垃圾數(shù)據(jù)和帶病毒數(shù)據(jù)擋在外面。其中,投稿數(shù)據(jù)庫可以限制作者的稿件文件的大小和數(shù)量,并把作者投稿以臨時(shí)文件形式存放,同時(shí)進(jìn)行自動(dòng)殺毒。在投稿數(shù)據(jù)庫與工作數(shù)據(jù)庫之間,單獨(dú)提供一個(gè)工具程序,由編輯人工參與實(shí)現(xiàn)數(shù)據(jù)的過濾和導(dǎo)入。
2.2 處理流程
    本系統(tǒng)的業(yè)務(wù)流程如圖2所示,編務(wù)收到作者來稿后先進(jìn)行查閱,刪除一些垃圾稿件,并把不同欄目的稿件分配給不同的編輯;編輯初審稿件可以直接退稿,可以把稿件轉(zhuǎn)發(fā)給副主編和相關(guān)的專家審稿;副主編可以把稿件轉(zhuǎn)發(fā)給主編審理;編輯收到副主編和專家的審稿反饋后可以決定稿件的處理結(jié)果(退稿、退修、擬錄);最后作者可以在系統(tǒng)上查看已投稿件的狀態(tài)。

 2.3 數(shù)據(jù)庫設(shè)計(jì)
    本系統(tǒng)采用的數(shù)據(jù)庫是MySQL[3],數(shù)據(jù)表有register、caogaoxiang、tougao、functions、module、role、role_function、user_role、userinfo、category。表register用來存儲(chǔ)作者注冊的個(gè)人信息;表caogaoxiang是還未上傳稿件的情況下存儲(chǔ)作者投稿時(shí)填寫的稿件的相關(guān)信息,并且作者可以在草稿箱看到此稿件的信息;表tougao是作者上傳稿件成功后存儲(chǔ)稿件信息;表category是存儲(chǔ)編輯部人員對稿件操作的有關(guān)信息,表tougao、表category通過公共關(guān)鍵字contributionNo關(guān)聯(lián),關(guān)鍵字contributionNo是表tougao的主鍵,是category的外鍵;表functions、module、role、role_function、user_role、userinfo用來實(shí)現(xiàn)權(quán)限管理功能,由編輯角色操作。表tougao和表category部分內(nèi)容如表1、表2所示。

3 系統(tǒng)實(shí)現(xiàn)    
3.1 MVC模式簡介

 MVC架構(gòu)是“Model-View-Controller”的縮寫,即“模型-視圖-控制器”。運(yùn)用這種模塊化“分離”的思想,MVC設(shè)計(jì)模式實(shí)現(xiàn)了業(yè)務(wù)邏輯和顯示的分離,大大提高了軟件的質(zhì)量和代碼可維護(hù)性。同時(shí),降低了各層之間的耦合,提供了應(yīng)用的可擴(kuò)展性。
3.2 Struts2+Spring+JPA架構(gòu)
 基于MVC模式,本投稿和審稿系統(tǒng)分為持久層、數(shù)據(jù)對象層、業(yè)務(wù)層、控制層、表現(xiàn)層。Struts2框架用來實(shí)現(xiàn)頁面跳轉(zhuǎn),Spring框架用來實(shí)現(xiàn)該系統(tǒng)業(yè)務(wù)邏輯的服務(wù)層,JPA框架則用來操作實(shí)現(xiàn)持久層和控制事務(wù)[4]。
 (1)表示層:展現(xiàn)給作者、編輯人員、審稿專家等用戶的狀態(tài)界面,此處采用包含Struts2標(biāo)簽的JSP頁面,Struts2標(biāo)簽簡化了JSP代碼。
 (2)控制層:Struts2中的action,把用戶的請求轉(zhuǎn)發(fā)給不同的業(yè)務(wù)邏輯進(jìn)行處理,并把處理后的信息反饋到表現(xiàn)層。
 (3)業(yè)務(wù)邏輯層:此系統(tǒng)的業(yè)務(wù)邏輯包含該系統(tǒng)的業(yè)務(wù)需求,用戶的每個(gè)業(yè)務(wù)請求都提供一個(gè)與之對應(yīng)的業(yè)務(wù)邏輯方法。
 (4)持久層:DAO層,負(fù)責(zé)與持久化對象交互,封裝了數(shù)據(jù)的增、刪、查、改操作。
 (5)領(lǐng)域?qū)ο髮樱和ㄟ^JPA作為O/R Mapping的映射工具,將關(guān)系型數(shù)據(jù)庫映射成對象,實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。
 各個(gè)模塊采用的Struts2+Spring+JPA架構(gòu)的系統(tǒng)結(jié)構(gòu)圖如圖3所示。

[!--empirenews.page--]

3.3 系統(tǒng)實(shí)現(xiàn)
3.3.1 投稿模塊

 (1)填寫稿件信息
 作者角色填寫稿件信息:作者在表示層頁面Modify.JSP中填寫稿件信息,點(diǎn)擊提交按鈕時(shí),頁面信息通過form表單發(fā)送給控制層,控制層ModifyAction收到作者的請求,調(diào)用業(yè)務(wù)邏輯層處理邏輯Modify方法,業(yè)務(wù)層處理邏輯調(diào)用持久層update方法訪問領(lǐng)域?qū)ο髮拥臄?shù)據(jù)對象。數(shù)據(jù)對象與數(shù)據(jù)庫中的數(shù)據(jù)對應(yīng),處理數(shù)據(jù)對象就相當(dāng)于處理數(shù)據(jù)庫中的數(shù)據(jù)。圖4為作者填寫稿件信息的邏輯時(shí)序圖。

    部分代碼如下:
     ModifyAction調(diào)用業(yè)務(wù)層邏輯方法的代碼為:
     public String modify()
{    
    cf.modify(c);
       return Action.SUCCESS;
         }
     操作數(shù)據(jù)表的業(yè)務(wù)層接口代碼:    public void modify (Caogao c);
     操作數(shù)據(jù)表業(yè)務(wù)邏輯層實(shí)現(xiàn)方法modify代碼:public void modify (Caogao c) {
         cd.update(c);
     }
    操作數(shù)據(jù)表的持久層接口代碼:public Caogao update(Caogao entity);
    操作數(shù)據(jù)表持久層實(shí)現(xiàn)方法update代碼:
      public Caogao update(Caogao entity) {
    EntityManagerHelper.beginTransaction();
        try {
     Caogao result = getEntityManager().merge(entity);
             EntityManagerHelper.commit();
             return result;
         } catch (RuntimeException re) {
             EntityManagerHelper.rollback();
             throw re;
         }
     }
    (2)上傳稿件
    作者角色上傳稿件:采用在線文件上傳組件Components-FileUPload上傳稿件。作者在表示層頁面Upload.jsp中選擇要上傳的稿件的路徑,點(diǎn)擊上傳按鈕,頁面請求通過form表單發(fā)送給控制層UploadAction, form中的enctype屬性用來設(shè)置上傳數(shù)據(jù)的編碼方式,應(yīng)設(shè)為multipart/form-date。UploadActon中的execute()方法中首先創(chuàng)建一個(gè)字節(jié)型輸入流來讀取傳送來的文件file。然后通過ServletAcrionContext.getRequest().getRealPath()獲取存儲(chǔ)問價(jià)的父目錄,然后創(chuàng)建一個(gè)destFile文件。該文件用來做為輸出流的目的文件。最后再創(chuàng)建一個(gè)關(guān)于destFile文件的輸出流。創(chuàng)建完輸入流和輸出流后,就可以創(chuàng)建一個(gè)中間字節(jié)數(shù)組buffer來實(shí)現(xiàn)輸入流與輸出流的轉(zhuǎn)換,從而實(shí)現(xiàn)文件的上傳功能。實(shí)現(xiàn)上傳功能,還要在struts.xml文件中對實(shí)現(xiàn)文件上的Action進(jìn)行攔截器方面的配置,可以設(shè)置允許上傳文件的大小,文件類型等等。上傳成功后返回Uploadsuccess.jsp。
3.3.2 審稿模塊
    (1)查閱稿件
    編輯角色查看稿件信息:稿件信息包括稿件的基本信息、稿件內(nèi)容及編輯部工作人員和專家對其的評價(jià)。查看稿件內(nèi)容需要下載稿件,實(shí)現(xiàn)方法也是采用Components-FileUPload組件,和上面講到的上傳稿件類似,這里就不再詳述。在編輯角色的ViEW層頁面Editor.jsp點(diǎn)擊目標(biāo)稿件的查看按鈕,則通過URL鏈接到findSingleContribution.action,并把目標(biāo)稿件的id傳送給action,此action調(diào)用業(yè)務(wù)層處理邏輯findSingleContribution,業(yè)務(wù)層調(diào)用持久層findById方法查詢數(shù)據(jù)對象, 查詢完成后返回?cái)?shù)據(jù)庫結(jié)果,返回?cái)?shù)據(jù)對象結(jié)果,返回邏輯處理結(jié)果,返回頁面視圖展現(xiàn)結(jié)果。
    (2)審理稿件
    編輯角色審理稿件:主要包括評價(jià)稿件,提交審理結(jié)果。評價(jià)稿件與作者角色填寫稿件信息類似,調(diào)用持久層的update方法。審理結(jié)果有三種:擬錄、退修、退稿、分別對應(yīng)數(shù)據(jù)庫flag中的1、2、3。提交審理結(jié)果就是修改flag的值。在Editor.jsp中選擇目標(biāo)稿件的三種稿件的任一種結(jié)果,調(diào)用控制層的review.action并傳遞目標(biāo)稿件的id和稿件處理結(jié)果flag的值給action,調(diào)用業(yè)務(wù)層的review方法,調(diào)用持久層的update方法。返回處理結(jié)果。
4 系統(tǒng)測試
    把系統(tǒng)布置到tomcate6中,通過瀏覽器訪問。按照注冊、登陸、投稿、審稿的流程操作系統(tǒng)。測試結(jié)果表明基本實(shí)現(xiàn)了需求分析時(shí)的功能。并且該系統(tǒng)通過javascript實(shí)現(xiàn)了許多瀏覽器端數(shù)據(jù)輸入驗(yàn)證功能,例如文題不能為空、驗(yàn)證郵箱格式、驗(yàn)證是否上傳了稿件等等。 圖5是投稿成功后,按照編輯人員審稿的流程操作的測試結(jié)果。

    本文設(shè)計(jì)的網(wǎng)站和系統(tǒng)是基于B/S結(jié)構(gòu),采用Dreamweaver制作靜態(tài)網(wǎng)頁,采用MVC模式Struts2+Spring+Jpa框架,Java語言和JSP技術(shù),MySQL數(shù)據(jù)庫實(shí)現(xiàn)的方案,完成了投稿和審稿功能。本系統(tǒng)具有如下優(yōu)點(diǎn):采用Java語言和JSP技術(shù),具有跨平臺(tái)的優(yōu)點(diǎn);基于B/S結(jié)構(gòu),系統(tǒng)運(yùn)行更簡易;采用MVC模式和Struts2+Spring+Jpa框架,易維護(hù)、易升級、易操作。本系統(tǒng)很好地解決了傳統(tǒng)手工投審稿效率低、耗時(shí)長、交互性差的問題。
參考文獻(xiàn)
[1] 李振捷. JSP網(wǎng)站開發(fā)典型模塊與實(shí)例精講[M].北京:電子工業(yè)出版社,2007.
[2] 胡異峰.投稿考評及分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2005(29):223-225.
[3] (荷)范德蘭斯著. MySQL開發(fā)者SQL權(quán)威指南[M].許杰星,等譯.北京:機(jī)械工業(yè)出版社,2008.
[4] 林永傍,劉偉平,黃紅斌,等.EPON故障管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].光通信技術(shù),2009,33(10):16-18.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉