摘要:利用Java平臺開發(fā)文檔共享系統(tǒng),整合教學(xué)資源,運用Hibernate技術(shù)實現(xiàn)數(shù)據(jù)的存取,采用的成熟的SSH框架組織后臺業(yè)務(wù)處理,使用AJAX技術(shù)實現(xiàn)無刷新更新,增加用戶體驗,提高訪問速度。支持Word、Excel、PDF以及PPT等格式的文檔瀏覽閱讀。支持用戶更好更快的上傳和下載文檔,實現(xiàn)資源共享。
關(guān)鍵詞:文檔共享;文檔轉(zhuǎn)碼;Ajax
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2013)09-2105-04
1 概述
隨著互聯(lián)網(wǎng)信息交流和資源共享的發(fā)展,文檔作為傳遞信息的載體,扮演著越來越重要的角色。許多大學(xué)存在著網(wǎng)絡(luò)信息資源平臺缺乏統(tǒng)一管理、沒有交互性和統(tǒng)一共享性、訪問瓶頸時有發(fā)生等問題[1],通過校園文檔共享平臺,同學(xué)們能夠上傳、管理相關(guān)類型的文檔,同時也可以搜索下載自己需要的文檔,并且通過積分機制有效地限制了只下載不付出的同學(xué)的下載量。解決了下載文檔資料問題的同時,又有效地加快了信息資源交流的速度,以便同學(xué)們更好地學(xué)習(xí)。
2 技術(shù)介紹
2.1 Ajax技術(shù)
Ajax即“Asynchronous JavaScript and XML”(異步JavaScript和XML)[2],它是一種用于創(chuàng)建更好更快以及交互性更強的Web應(yīng)用程序的技術(shù)。JavaScript通過該技術(shù)可使用XMLHttpRequest對象來直接與服務(wù)器進行通信,可在不重載頁面的情況與Web服務(wù)器交換數(shù)據(jù),AJAX在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請求),這樣就可使網(wǎng)頁從服務(wù)器請求少量的信息,而不是整個頁面,可使因特網(wǎng)應(yīng)用程序更小、更快、更友好[3]。其優(yōu)點可以歸結(jié)為:
1)不必更新全部網(wǎng)頁,可更新部分頁面。
2)優(yōu)化了Browser和Server之間的溝通,減少不必要的數(shù)據(jù)傳輸、時間及降低網(wǎng)絡(luò)上數(shù)據(jù)流量。
3)平衡了前、后端的負(fù)載,原本數(shù)據(jù)大多由后端負(fù)責(zé)處理,借由AJAX讓客戶端分擔(dān)些工作,減低了后端的負(fù)載。
本系統(tǒng)對AJAX的使用主要表現(xiàn)是在前臺頁面上,如會員登錄使用AJAX技術(shù)驗證實現(xiàn)無刷新登錄,增加用戶的體驗。
2.2 文檔轉(zhuǎn)碼技術(shù)
由于文檔共享平臺實現(xiàn)了文檔的在線瀏覽功能,會員可以對文檔內(nèi)容進行在線瀏覽,并且可以根據(jù)自己的喜好對字體進行放縮、以及跳頁等功能,所以必須以Flash流媒體的形式呈現(xiàn)在前臺頁面,這時就需要對文檔進行轉(zhuǎn)碼操作。其轉(zhuǎn)碼原理為,通過FlashPaper2對文檔格式的文件進行轉(zhuǎn)碼,取文檔的每一頁作為一幀組成Flash文件[4],其轉(zhuǎn)碼流程如圖1所示。
3 需求分析
系統(tǒng)的使用者主要有三類人,即游客、會員和管理員。各種用戶的功能如下:
3.1 游客功能
游客在訪問系統(tǒng)主頁后,對系統(tǒng)的使用主要包括搜索文檔、瀏覽文檔、查看網(wǎng)站基本信息和注冊會員等功能。
1)搜索文檔。游客訪問網(wǎng)站后,可以通過關(guān)鍵詞來搜索自己需要的文檔信息。
2)瀏覽文檔。找到自己需要的文檔信息后,可以在線對文檔進行瀏覽查看。
3)查看網(wǎng)站基本信息。訪問主頁后,通過超連接查看網(wǎng)站提供的基本信息。
4)注冊會員。游客輸入注冊信息,通過驗證后可以成為本系統(tǒng)的普通會員。
3.2 會員功能
會員在訪問系統(tǒng)主頁后,對系統(tǒng)的使用主要包括上傳文檔、下載文檔、評論文檔、搜索文檔、瀏覽文檔、查看網(wǎng)站基本信息、查看和修改個人基本信息等功能。
1)搜索文檔。會員訪問網(wǎng)站后,通過填寫所需文檔的信息,搜索文檔。
2)瀏覽文檔。搜索到自己需要的文檔信息后,可在線對文檔進行瀏覽查看。
3)查看網(wǎng)站基本信息。訪問主頁后,可以查看網(wǎng)站提供的基本信息。
4)上傳文檔。會員可以上傳自己的文檔供其他會員下載,并獲得相應(yīng)的積分。
5)下載文檔。會員可以搜索別人的文檔下載,但需扣除相應(yīng)的積分。
6)個人信息管理。會員對個人信息進行管理,包括個人信息的查看和修改等。
7)收藏文檔。會員可收藏別人的文檔,以便下一次登錄后快速找到文檔。
3.3 管理員功能
相比游客和會員用戶,管理員使用本系統(tǒng)的頻率要更高,管理員在登錄系統(tǒng)后臺管理頁面后,對系統(tǒng)的使用主要包括文檔管理文檔管理、公告管理、文檔審核、會員管理和數(shù)據(jù)庫管理等功能。
1)文檔管理。管理員可對數(shù)據(jù)庫文檔記錄進行管理,包括文檔的搜索、刪除和修改操作。
2)公告管理。管理員可對公告進行管理,包括對公告的添刪改操作。
3)文檔審核。對于會員上傳上來的文檔,必須進過管理員的審核通過后才能在前臺顯示,對文檔的審核包括文檔的轉(zhuǎn)碼操作。
4)會員管理。管理員可以對系統(tǒng)會員進行管理,包括對會員的添加、搜索、修改和刪除操作。
5)數(shù)據(jù)庫管理。為了系統(tǒng)數(shù)據(jù)的安全,管理員可以每隔一段時間對系統(tǒng)的數(shù)據(jù)庫進行一下備份,當(dāng)系統(tǒng)數(shù)據(jù)出現(xiàn)故障后可以進行數(shù)據(jù)還原操作。
4 系統(tǒng)主要功能設(shè)計
4.1 系統(tǒng)整體架構(gòu)設(shè)計
本系統(tǒng)嚴(yán)格遵循B/S模式的三層結(jié)構(gòu)的設(shè)計理念,設(shè)計過程中首先將系統(tǒng)劃分為相對簡單的小模塊,然后各個模塊之間只能通過接口進行傳遞消息,底層的實現(xiàn)過程對上層是透明的[5-6]。本系統(tǒng)設(shè)計為前臺顯示層(View)、業(yè)務(wù)處理層(Action)和數(shù)據(jù)訪問層(DAO)三層,前臺通過發(fā)送請求request并且將請求參數(shù)進行封裝發(fā)送到業(yè)務(wù)處理層,由相應(yīng)的Action類進行處理,然后通過DAO層訪問數(shù)據(jù)庫,獲得相應(yīng)的數(shù)據(jù)信息,通過List返回到Action層,再根據(jù)顯示的需要,通過List發(fā)送到前臺顯示給用戶。
4.2 接口設(shè)計
本系統(tǒng)的核心功能是文檔模塊,它主要提供文檔分類、文檔搜索、文檔管理(包括文檔的增刪改查)、瀏覽文檔、審核文檔、文檔上傳、文檔下載和文檔下載排行六個接口,其中文檔搜索又可分為按拓展名、按標(biāo)題、按用戶名、按時間搜索等子接口,文檔的審核包括文檔的查閱和轉(zhuǎn)碼操作。
系統(tǒng)中文檔模塊的參與者包括管理員、會員和游客,其中游客對文檔只有瀏覽功能,不再詳述。下面以管理員和會員為例說明各自調(diào)用的接口和實現(xiàn)的功能。
4.2.1 管理員
1) 調(diào)用文檔管理接口對文檔進行管理;
2) 調(diào)用文檔的審核接口實現(xiàn)對文檔的評審,如果符合網(wǎng)站規(guī)定則允許文檔轉(zhuǎn)碼,否則就刪除文檔;
3) 調(diào)用文檔分類接口來對文檔進行歸類,可以調(diào)用一級歸類接口對一級目錄管理,調(diào)用二級歸類接口對二級目錄管理;
4) 調(diào)用瀏覽文檔接口對文檔進行在線瀏覽;
4.2.2 會員
1) 調(diào)用的瀏覽文檔接口實現(xiàn)對文檔的瀏覽功能;
2) 調(diào)用上傳文檔接口實現(xiàn)上傳文檔的功能;
3) 調(diào)用下載文檔接口實現(xiàn)下載文檔的功能;
4) 調(diào)用文檔搜索接口實現(xiàn)對文檔的搜索功能,并且可以根據(jù)自己的需要按不同的條件對文檔進行搜索,如可以分別按時間、按標(biāo)題、按上傳會員姓名、按時間對文檔進行搜索。
通過以上對功能的分析和各個角色接口的調(diào)用關(guān)系,可以創(chuàng)建出該模塊的類圖如圖2所示。
Document類:文檔實體類,用于封裝文檔的基本信息,包括文檔標(biāo)題、id、文檔類型、發(fā)布用戶、拓展名、上傳時間、url、關(guān)鍵詞等信息以及對這些信息的訪問方法。
DocumentDao類:文檔數(shù)據(jù)庫訪問對象,對數(shù)據(jù)庫訪問操作進行封裝,包括一些訪問數(shù)據(jù)庫的基本操作,如增加、刪除、修改、查找等。
Dao接口[7]:數(shù)據(jù)訪問接口,聲明了訪問數(shù)據(jù)庫的基本方法,包括增加、修改、刪除、查找以及分頁的方法。
DaoSupport類:實現(xiàn)了對Dao中聲明的方法,對數(shù)據(jù)庫訪問的又一層封裝。
DocServiceImple類:對外業(yè)務(wù)提供的接口,通過這個類來對文檔類進行業(yè)務(wù)操作,對外提供文檔上傳、文檔下載、文檔搜索等對文檔操作的方法。
UserDao類:用戶數(shù)據(jù)庫訪問對象,對數(shù)據(jù)庫訪問操作進行封裝,包括一些訪問數(shù)據(jù)庫的基本操作,如增加、刪除、修改、查找等。
DocType類:文檔類型實體類,用于封裝文檔類型的基本信息,包括文檔名、文檔編號、文檔類別上級類別等。
DocTypeDao類:文檔類型數(shù)據(jù)庫訪問對象,對數(shù)據(jù)庫訪問操作進行封裝,包括一些訪問數(shù)據(jù)庫的基本操作,如增加、刪除、修改、查找等。
由DaoSupport類繼承Dao接口,并實現(xiàn)其中聲明的方法,再由DocumentDao和DocTypeDao繼承DaoSupport類,這樣DocumentDao和DocTypeDao就有了Dao接口聲明的方法,但不用實現(xiàn)其中的方法,具體的實現(xiàn)已經(jīng)在DaoSupport中完成。然后在DocServiceImpl中加入DocumentDao和DocTypeDao的引用就可以實現(xiàn)對外提供文檔的操作和文檔歸類的操作接口。
5 系統(tǒng)主要功能的實現(xiàn)
下面以在線瀏覽文檔、搜索文檔和上傳文檔為例,展開系統(tǒng)主要功能的實現(xiàn)描述。
5.1在線瀏覽文檔功能
該功能是在線顯示文檔,在用戶發(fā)出瀏覽文檔請求后,后臺響應(yīng)的處理類documentAction會根據(jù)用戶請求文檔的編號找到該文檔,獲取文檔轉(zhuǎn)換后的swf文件物理地址,然后將swf文件響應(yīng)給用戶,通過調(diào)用客戶端瀏覽器的flash插件對響應(yīng)文檔進行顯示,供用戶在線瀏覽。其效果圖如圖3所示。
用戶點擊想要瀏覽的文檔后,服務(wù)器端則通過用戶的request請求獲取文檔的編號id交給documentAction類處理,document通過lookDocument()方法調(diào)用文檔模塊documentService對象,通過調(diào)用文檔模塊提供的接口browseDocument()來實現(xiàn)對文檔的查看,documentService中則調(diào)用DocumentDao對象獲取路徑。
5.2搜索文檔模塊
該文檔搜索模塊實現(xiàn)了用戶對文檔的搜索功能,其效果如圖4所示。
用戶在搜索欄里輸入文檔信息,然后選擇相應(yīng)的搜索方式,點擊搜索。后臺DocumentAction類通過request對象獲取用戶輸入的文檔信息和搜索方式,判斷一下前臺傳過來的搜索方式,如果是按文檔名查詢,則通過調(diào)用DocumentDao類對象的findByName()對數(shù)據(jù)庫進行模塊查詢,如果是按用戶查詢,則通過DocumentDao類對象的findByUser()對數(shù)據(jù)庫進行模塊查詢,查到之后會封裝到List
5.3 上傳文檔功能實現(xiàn)
會員登錄之后,可以分享自己的文檔,即將本地的文檔上傳到服務(wù)器端供給其他會員下載。其效果圖如圖5所示。
圖5 上傳文檔效果圖
會員到達上傳頁面后,點擊瀏覽按鈕即可選擇本地文件進行上傳操作,由于會員在上傳文檔后,必須對文檔詳細(xì)信息進行補充,所以在此,本系統(tǒng)只設(shè)計了單一上傳。選擇好文檔后,點擊上傳按鈕,這時發(fā)送request請求到后臺,系統(tǒng)就會用FileForm類對文檔信息進行封裝傳到后臺DocumentAction對象,由uploadFile()方法來處理,上傳成功之后會跳到對文檔詳細(xì)信息進行補充界面。用戶填寫了必需的信息后,點擊提交文檔按鈕,這時request會交由DocumentAction的DocDetailInfo()方法來處理,通過DocumentService的上傳接口調(diào)用DocumentDao對數(shù)據(jù)庫插入一條記錄,如果插入出錯,則返回出錯信息。
登錄后,在導(dǎo)航欄處點擊會員中心按鈕,此時系統(tǒng)會將request交給UserAction類的userCenter()方法進行處理,通過UserService提供的接口,分別由UserDao、DocumentDao類對象的查詢方法對數(shù)據(jù)庫進行訪問,獲取會員的基本信息包括會員的用戶名、積分總值、上傳過的文檔和下載過的文檔等信息,通過List對象返回到前臺進行顯示。
6 結(jié)束語
基于SSH和AJAX的在線文檔共享平臺的實現(xiàn)旨在為同學(xué)們搭建一個文檔共享和交流的平臺,讓學(xué)生們能夠方便快捷的找到自己需要的文檔資料。系統(tǒng)從用戶的角度上傳文檔、下載文檔、評論文檔、搜索文檔、在線瀏覽文檔等功能,從管理員的角度實現(xiàn)了管理會員信息、審核文檔、管理系統(tǒng)公告、管理文檔、管理評論、修改個人信息等功能,而從游客角度實現(xiàn)了搜索文檔、在線瀏覽文檔功能。能夠很好的滿足用戶的基本功能需求。
參考文獻:
[1] 王曉靜,冉從林,梅龍寶.基于Web2.0校園信息資源共享平臺的設(shè)計與實現(xiàn)[J].現(xiàn)代教育技術(shù),2009(3).
[2] 丁波,晁愛農(nóng).基于Struts2框架的AJAX開發(fā)研究[J].計算機工程與設(shè)計,2009(16).
[3] 秦京渝.企業(yè)級開發(fā)與框架[M].北京:電子工業(yè)出版社,2008:233-244.
[4] 劉銳.調(diào)用FlashPaper API控制FlashPaper文檔界面[J].電腦知識和技術(shù),2009(12).
[5] 楊少波,顧益軍.J2EE項目實訓(xùn)-Spring框架技術(shù)[M].北京:清華大學(xué)出版社,2008.
[6] 武寶珠,梁聲灼,牛德雄.基于Struts2+Spring+Hibernate架構(gòu)構(gòu)建Web應(yīng)用系統(tǒng)[J].計算機與現(xiàn)代化,2009(8).
[7] 竇東陽,趙英凱,許文稼.利用Myeclipse簡化基于Hibernate的數(shù)據(jù)庫訪問[J].計算機工程與設(shè)計,2007(4).