【正文】
屬性如 下: private int messageID。 //信息主題 private String messcont。 //信息主題 private String messcont。 } if ((null)) { 30 信息科學與技術學院學士學位論文 (theme_null, 主題不能為空 !)。 } if (()255) { (messcont_big, 信件內容太長了?? )。 //實現發(fā)送信息的 方法 (SendSuccess, 信息發(fā)送成功! )。 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory()。 if (!().hasNext()) { (receivename_error, 此用戶不存在! )。 } public void Inster() { //實現發(fā)送信息的方法 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory()。 HttpSession sess = ()。 (())。 (message)。 } } 其他功能模塊的實現與信息發(fā)送功能的實現類似,在這里就不再作展示了。 34 信息科學與技術學院學士學位論文 6 個人數字圖書館功能測試 軟件測試大體的分為黑盒測試和白盒測試,其中功能測試屬于黑盒測試的范疇,它是通過測試來檢驗系統的每一個功能是否都可以正常的使用,功能測試還是系統測試的一部分,系統測試是項目開發(fā)過程的最后階段 [14]。 功能描述:用戶登錄系統、退出系統 。 發(fā)現問題:無 。 輸入:選擇需要上傳或下載的資料 。 圖 64 上傳資料頁面 圖 65 下載資料頁面 37 信息科學與技術學院學士學位論文 ( 3) 測試用例 3: 功能名稱: 發(fā)送信息。 測試輸出:如圖 66 所示, 67 所示。 輸入: 管理員已正常登陸,并選中刪除資料。 ( 2) 測試用例 2: 功能名稱: 刪除用戶。 測試輸出: 檢查數據庫表和服務器中 保存文件的位置知道與此用戶相關的所有資料已不存在。 39 信息科學與技術學院學士學位論文 結束語 在論文開始之初,本人查閱了很多與知識管理、個人知識管理、圖書管理相關的資料文獻,這對于系統的功能設計有很大的幫助。 當然,無論個人數字圖書館的功能多么齊全多么強大,操作多么便捷,如果使用者不能夠堅持實施執(zhí)行,那么個人數字圖書館也只是個擺設,個。 由于受時間和本人能力的限制,本論文和系統都有很多不足之處,如已實現的功能還很脆弱,且在安全性、界面友好性等方面都存在著需要改進和提高的地方。 本章小結 本章對 個人數字圖書館 系統的各個 模塊功能 進行測試, 從測試結果可知,系統中各個模塊的功能都能夠正常的運行。 輸入: 管理員已正常登陸,并選中刪除用戶。 測試輸出: 檢查數據庫表和服務器中保存文件的位置知道文件已不存在。 圖 66 發(fā)送信息 頁面 圖 67 接收信息 頁面 38 信息科學與技術學院學士學位論文 系統后臺功能測試 ( 1) 測試用例 1: 功能名稱: 刪除用戶資料。 輸入: 收件人名、信息主題、信息內容。 36 信息科學與技術學院學士學位論文 測試輸出:如圖 64 所示, 65 所示。 35 信息科學與技術學院學士學位論文 圖 62 個人主頁 圖 63 用戶退出系統頁面 ( 2) 測試用例 2: 功能名稱: 上傳下載 。 正常輸出:登錄成功后輸出個人主頁,退出成功后輸出感謝頁面。本章主要對前臺和后臺進行功能測試。 所以 要在項目中 添加 Struts2 的應用,需在系統中配置相應的 文件: !定義 Struts2 的 StrutsPrepareAndExecuteFilter 的 Filter filter filternamestruts2/filtername filterclass. /filterclass /filter ! StrutsPrepareAndExecuteFilter 用來初始化 Struts2 并且處理所有的 Web 請求 filtermapping filternamestruts2/filtername urlpattern/*/urlpattern /filtermapping 由于項目系統中前臺頁面由 Freemarker 實現,所以還應在 中添加一個作為 引導作用的 action,如下: action name=index class= resultname=success type=freemarker/pages//result /action 信息列表在前臺顯示的主要代碼如下: p共 ${count?if_exists}條消息 p list myList as Message p 發(fā)件人: ${} br/主題: ${} a href=?messageID=${}顯示 /a br/font color=green 時間: ${}/font 33 信息科學與技術學院學士學位論文 a href=?messageID=${}刪除 /a /list p/ 信息詳細內容在前臺顯示的主要代碼如下: fieldset legend消息內容 /legend labelfont color=green發(fā)件人: /font/label${sendname}p/ labelfont color=green主題: /font/label${theme}p/ labelfont color=green內容: /font/label${messagecont} /fieldset 由以 上展示的代碼可知使用 Freemarker 技術使得前臺頁面的編碼非常簡單,大大的降低了開發(fā)的難度,其他頁面的顯示與此類似,這里就不再作過多的展示了。 ()。 (messcont)。 Message message = new Message()。 Transaction tx = ()。 return false。 Transaction tx = ()。 } public boolean check(String receivename) { String sql = from User where username=39。 } if (!check(receivename)) { return ERROR。 } if ((null)) { (messcont_null, 發(fā)送內容不能為空! )。 if ((null)) { (receivename_null, 收件人不能為空! )。 //信息的發(fā)送時間 其中 實現發(fā)送功能的 Action 為 : 其核心代碼如下: public class MessSendAction extends ActionSupport{ private String receivename。 //收信人名稱 private String sendname。characterEncoding=GB2312 /property property name=root/property property name=2947114/property ! 數據庫方言配置 property name=dialect /property ! 控制臺打印 Hibenate 持久化操作生成的 SQL 語句 28 信息科學與技術學院學士學位論文 property name=show_sqltrue/property ! Hibernate 將 Session 綁定到當前線程,事務結束后, Hibernate 將 Session 從當前線程中釋放,并且關閉 Session property name=current_session_context_classthread /property ! 全部映射文件 mapping resource=/model// ????????????? .其他實體類映射省略 mapping resource=/model// /sessionfactory Struts 的配置文件 中的主要配置如下: ! 將開發(fā)模式的值設為: true,便于后期開發(fā) constant name= value=true / ! 一次上傳的最大容量為 1G constant name= value=1073741824 / ! namespace 的配置將頁面所在文件夾置為其值 package name=default namespace=/pages extends=strutsdefault ! 上傳文件 action name=doUp class= ! 文件上傳必需包含的兩個攔截器棧 interceptorref name=fileUpload /interceptorref interceptorref name=defaultStack/ result name=success type=freemarker/pages//result result name=input type=freemarker/pages//result /action 其他 action 的配置類似在此不再展示, 到此, 完成了前期開發(fā)環(huán)境的部署。 系統開發(fā)環(huán)境與技術 本 系統 開發(fā)模式為 瀏覽器 /服務器 B/S(Browser/Server)架構模式, 采用主流框架SSH 中的 Struts2 和 Hibernate, Tomcat 為服務器支持, 客戶端運行環(huán)境為Windows/20xx/XP+ 以上版本, 采 用 Freemarker 實現前臺頁面的顯示 , MYSQL做后臺數據庫 , Myeclipse IDE 作為開發(fā)工具 。 26 信息科學與技術學院學士學位論文 圖 410 Struts 2 處理過程 結合上圖說明 Struts2 的大致處理流程為客戶端初始化一個指向 Servlet 容器,本系統是指 Tomcat容器,這個請求經過一系列的過濾器 Filters接著調用 FilterDispatcher詢問 ActionMapper 來決定是否需要調用某個功能 Action 來處理請求,在調用此Action 的前后還涉及到調用相關的攔截器 Intercepter,當 Action 執(zhí)行完畢后,ActionInvocation 會根據系統中 配置文件找到對應的返回結果。 25 信息科學與技術學院學士學位論文 U s e r I D U s e r N a m e S e x P a s s w o r d N i c k N a m e E m a i l D e s c r i p t i o n I f P u b l i cU s e r M e s s a g e I D M e s s a g e C o n t e n t S e n d N a m e T h e m e S e n d T i m e U s e r N a m eM e s s a g e+ e x e c u t e ( ) M e s s a g e I DM e s s a g e D e l+ e x e c u t e ( )+ i n s t e r ( )+ c h e c k ( ) M e s s a g e C o n t e n t R e c e i v e N a m e T h e m eM e s s a g e S e n d+ e x e c u t e ( ) M e s s a g e I D M e s s a g e C o n t e n t S e n d N a m e T h e m eM e s s a g e S h o w1n1nn1n1 圖 49 發(fā)送信息類圖 Web 層設計 Web 層可以形象的描述為一個傳遞者、中間者的角色, 它在系統中的任務是簡單的處理瀏覽器端的請求,如驗證輸入數據的合法性等;通過驗證后再與服務