基于JavaEE的畢業設計選題測試及管理系統的設計與實現_第1頁
基于JavaEE的畢業設計選題測試及管理系統的設計與實現_第2頁
基于JavaEE的畢業設計選題測試及管理系統的設計與實現_第3頁
基于JavaEE的畢業設計選題測試及管理系統的設計與實現_第4頁
基于JavaEE的畢業設計選題測試及管理系統的設計與實現_第5頁
已閱讀5頁,還剩40頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢 業 論 文 題 目 基于javaee的畢業設計選題測試及管理系統的設計與實現 英文題目 design and implementation of the graduation design topics selection testing and management system based on javaee 院 系 信息科學與技術學院 專 業 計算機科學與技術 姓 名 班級學號 指導教師 二一二年五月摘 要基于javaee的畢業設計選題測試及管理系統通過在畢業設計選題之前的測試來判斷學生能力,指導學生選擇自己優勢方向來選擇題目,能夠更好幫助畢業生正確選題。系統提供給學生有在線測試、查

2、看評測結果、查看評測報告、推薦導師和課題、提交論文、下載論文等功能。系統提供給老師管理課題、查看學生測試結果、提交課題研究建議、查看學生論文、上傳批閱的論文等功能。系統提供給系統管理員有管理用戶信息、管理題庫等功能。系統采用的struts架構是對mvc設計模式的一種實現,它繼承了mvc設計模式的所有特性,組件的模塊化、重用性、靈活性使得開發更加快捷,管理和維護更加方便。學生測試后可以更了解自己的專業水平,通過系統推薦的導師和課題,可以幫助學生更好的選擇導師。導師可以通過系統更全面的了解學生的各方面能力同時選擇學生。在學生與導師雙向選定后對學生論文的進度跟進,論文批改工作方面也起到了一定的協助作

3、用。關鍵詞:struts,選題測試,論文管理abstractbased on javaee the graduation design topics selection testing and management system can determine the ability of the students according to the testing result. the system can guide the students according to their own advantages to choose a topic, and help to evaluate th

4、em and select topic correctly. the system provides students with online testing, show evaluation results, show testing scores, recommend tutors and thesis, upload thesis, and download thesis and some other functions. the system provides teachers to submit topic, search student testing scores, provid

5、e the recommendation of thesis, download students thesis, and upload students thesis. as system administrator can manage all the users information and manage all the questions information. struts framework is a realization of mvc design pattern. it inherited all the characteristics of mvc design pat

6、tern. its modularity, reusability, flexibility make the process of development more efficient and convenient.after testing, students can better understand their professional level. through the recommendation by the system, students can select their tutors better; tutors can have a more comprehensive

7、 understanding of all aspects of students ability. the system also has assistant function in following the track of papers writing and in correcting the papers. key words: struts, topics testing, paper management 目 錄摘 要iabstractii1 概 述1.1課題意義(1)1.2課題目標(1)1.3論文結構簡介(2)2 技術介紹和分析 2.1 struts簡介(3)2.2 mysq

8、l簡介(3)2.3 myeclipse簡介(4)2.4 rational rose簡介(5)3 系統需求分析3.1系統概述(7)3.2系統功能分析(7)3.3系統用例建模(9)4 系統設計4.1設計目標及原則(15)4.2系統總體架構設計(16)4.3系統數據庫設計(17)4.4(web)表示層設計(18)4.5業務邏輯層設計(20)4.6(dao)數據訪問層設計(21)5 系統實現5.1開發環境配置(24)5.2(web)表示層實現(25)5.3業務邏輯層實現(27)5.4(dao)數據訪問層實現(29)6 系統測試6.1冒煙測試(33)6.2功能測試(34)致 謝(38)參考文獻(39)4

9、01 概述1.1 課題意義畢業設計是對大學生們在大學期間所學的所有知識的掌握程度進行考核。現在很多學生對大學學習的知識沒有進行過系統的應用和總結,不了解自己總體的水平、優勢和劣勢。導師與學生之間的交流還停留在紙質論文交流的方式。由于不少學生正式選題時不了解有哪些導師的研究方向適合自己,造成選題盲目甚至做出來的畢業設計不符合要求等現象。出題的教師出題前也沒有渠道來充分了解學生具體情況,設置的選題可能無法體現學生的技能水平。學生在制作畢業設計期間與老師要進行頻繁的交流,特別是在畢業論文的修改、提交、審核、評閱、意見反饋,畢業設計制作進度的監督、系統質量的監督方面。本系統就是為了方便學生科學的了解自

10、己的專業技能水平,根據自己有優勢的方面選擇畢業設計,方便導師與學生之間的交流和學生順利完成畢業設計而提出來的采用當前流行架構和技術完成的系統。1.2 課題目標通過本課題的研究和課題系統的實現,可以讓學生以學生身份登錄,通過學生的在線測試系統將提供測試結果,根據測試結果再提供給學生選題建議,如適合選擇的課題和導師。撰寫論文期間可以上傳寫好的論文和下載導師批改過的論文,導師可以以教師身份登錄,給每個選題填寫題目要求和對學生的期望要求,可以查看學生的評測結果,對所帶的學生提交的論文可以下載下來進行審閱,并提交到系統供學生查看。管理員通過該系統對所以系統用戶進行管理,對題庫進行管理。最終系統能幫助學生

11、選題和教師出題,以及畢業論文高效設計和制作,搭建教師與學生的有效交流平臺。1.3 論文結構簡介系統是根據軟件工程中軟件開發過程來制作的,首先進行的是可行性研究,需求分析,總體結構設計,詳細設計,編碼實現,系統測試,最后是系統維護。根據這個過程來組織論文的結構如下:(1)概述:主要敘述課題研究對用戶的意義,介紹最終系統應該完成的功能和達到的效果。(2)技術介紹和分析:對系統所用的技術和工具作比較和介紹,闡述使用各項技術和工具的優勢。(3)需求分析:根據實際的應用和用戶需求概述得到開發的系統的需求,通過對角色的分析得到系統使用對象的特點和功能需求。根據用戶之間的關系為系統內部邏輯的設計和數據庫的設

12、計提供參考。(4)系統設計:根據系統需求設計系統總體的架構和數據庫。并解析javaee技術在各層之間的具體應用。(5)系統實現:根據系統設計,闡述系統功能實現過程、數據庫創建過程、前后臺工作過程。通過對學生選題測試功能中struts架構的運作過程來更具體的闡述實現過程。(6)系統測試與維護:通過測試工具的使用,測試系統是否符合用戶需求。通過測試完善系統,改進系統,改正系統中存在的隱含的缺陷。小結:通過本節的介紹,使得對系統的制作的意義和目的進一步細化。堅定了實現系統的決心,并對完成系統有了大概的總體把握。2 技術介紹和分析2.1 struts簡介struts框架是一種流行的mvc框架,它是對m

13、vc的實現1,將servlet和jsp標記作為實現的一部分。struts最早是作為apache基金會jakarta項目組的組成部分open source項目,項目的創立者希望通過對該項目的研究,改進和提高javaserver pages 、servlet、標簽庫以及面向對象的技術水準。struts采用mvc模式,能夠很好的幫助java開發者利用javaee開發web應用。struts的使用能夠很好的幫助開發團隊減少在運用mvc設計模型來開發web應用的時間。它的優勢主要集中在:(1)是一款開源軟件,開發者可以深入了解其內部實現機制,各種開發要用的jar包可以通過網絡下載到本地,非常便捷。(2)

14、有自己的標記庫即taglib,一方面使得jsp頁面盡可能少的嵌入java腳本,不必考慮java語法或其他jsp語法專注于頁面的可視特征上。另一方面給應用開發者很強的后臺支持。(3)頁面導航功能,通過一個配置文件struts.xml來控制整個系統各部分之間的聯系,對各個頁面的請求進行分發。對后期的系統維護提供了很大的便利,對系統的脈絡也更加清晰。struts在實現mvc模型時,模型層是將模型分為系統的內部狀態和事物邏輯兩個部分,內部狀態通常由一組actionform javabean表示,大型應用程序的事物邏輯封裝在方法內部,小型應用程序則可能內嵌在action類中。視圖層由jsp建立,應用st

15、ruts的標簽庫。控制層用的是繼承自actionsupport的action類,實際操作中是在struts.xml配置文件中進行action映射。2.2 mysql簡介mysql是目前非常流行的sql語言數據庫,是開放源代碼的非商用的關系型數據庫。由于其開源性使得當前很多系統都使用mysql數據庫。雖然是免費的但是與同類商業用途的數據庫比并不遜色。其主要特性有:(1)數據的物理存儲和存取路徑對用戶是不透明的,這樣也減少了用戶的使用難度。對數據庫不是十分了解的用戶使用起來比較簡單。(2)不僅在windows操作系統還可以在linux、unix、sun os等操作系統上使用。(3)mysql提供了

16、不同的數據類型供選擇,支持所有的sql數值類型。根據數據結構可以選擇不同格式和大小的數據類型,使得磁盤空間更加節省,數據庫的性能的到提高。如:char提供的是定長的數據存儲類型使得檢索該類型的數據比較快,varchar類型的數據可以保存變長的字符串,通過設置其最大可存儲的數據的長度可以在不知道數據長度的情況下存儲任何小于該最大長度的字符串。(4)查詢功能很強大,支持select和where語句的count()、avg()、min()、sum()函數和order by等命令,使得檢索時可以進行一些運算,對檢索出來的結果可以進行一些處理。(5)支持多個用戶對數據庫的同時訪問。與另一個比較常用的ac

17、cess數據庫比較,access只能運行在windows操作系統,適合數據量小的數據存儲,但數據量太大時會造成服務器死機有時甚至服務器崩潰。本系統是面向信息學院所有學生和教師的,要存儲學生信息和教師信息以及題庫信息,不適合使用access數據庫。而開發的系統對數據的查詢和速度要求比較大,所以使用mysql數據庫更加適合本系統。2.3 myeclipse簡介myeclipse是企業級工作平臺是對eclipse ide的擴展,它是功能非常豐富的javaee的集成開發環境,在myeclipse下可以對系統進行編碼、調試、測試和發布,另外支持html的所有標記。在使用myeclipse時對代碼能進行提

18、示功能,并且對語法的錯誤能提示和定位錯誤。對于一些代碼如javabean中的get和set方法可以自動生成相應的代碼,節省了工作量。myeclipse就是eclipse的插件,它結構上是模塊化得,在不影響其他模塊的情況下可以對任一模塊單褲升級和擴展。系統開發時使用的是myeclipse 8.0版本,從myeclipse 5.0版本就增加了uml雙向建模工具、可視化的hibernate/orm工具、web services支持和oracle數據庫開發等。之后出現了myeclipse6.xga版本,它兼容了eclipse 3.3,可在windows,linux等操作系統上運行,并且支持java持久

19、化結構開發,能夠對項目自動部署和啟動服務,另外還集成了myeclipse tomcat 6服務器。隨后又出現了myeclipse 7.0和8.0版本,7.9版本已經不需要配置tomcat,只需安裝好myeclipse7.0即可,而8.0版本新增了對struts2的支持。2.4 rational rose簡介rational rose是由美國的rational公司開發的一種面向對象的可視化建模工具。利用rational rose可以建立用uml(統一建模語言)描述的軟件系統模型,而且可以自動生成和維護c+、java、visual basic和oracle等語言和系統的代碼。rational ro

20、se 包括了統一建模語言(uml)、面向對象的軟件工程(oose)及對象建模技術(omt)2。rational可以運行在windows操作系統下,其主要的特點有:(1)保證模型和代碼高度一致,它實現了正向和逆向和雙向工程。它可以更具模型生成代碼,也可根據軟件系統導出系統的模型。(2)支持多種語言,rational rose支持包括c+、visual c+、java等語言,為rational rose用戶提供了便利。(3)為團隊開發提供強有力的支持,它提供了蔡榮scm(軟件配置管理)的團隊開發方式和沒有scm下的團隊開發方式,用戶可以根據具體項目規模和資源選擇。(4)支持模型的internet發

21、布,rose中有internet web publisher能將模型發布為html版本,使得其他人員可以通過ie等瀏覽器瀏覽模型。(5)生成使用簡單且定制靈活的文檔,rose中的文檔生成工具soda可以提供模型文檔模板,可以自動生成word格式的文檔。(6)支持關系型數據庫的建模,rose能為sql server、oracle等支持標準ddl的數據庫自動生成數據描述語言。小結: 在選擇開發和設計使用的工具時并不是選擇最好的而選擇的是比較適合本系統的工具。struts使得開發的項目層次分明,便于管理。myeclipse的高度集成性使得與其它軟件的合作性比較好。rational rose在建立系統

22、模型過中起到了非常重要的作用。3 系統需求分析系統需求分析是在需求獲取結束之后進行的,主要是根據獲取的需求提煉、分析和仔細審查收集到的需求,以確保項目參與者都明白其含義并分析每個需求與其他需求的關系,找出其中的錯誤、遺漏、重疊、不一致或其他不足的地方。通過分析得到系統可以實現的范圍和實現能力,根據用戶的需求對需求進行排序。系統需求分析的目的在與開發出高質量和具體的需求,為軟件設計和實現提供依據。3.1 系統概述基于javaee的畢業設計選題測試及管理系統要求學生在設計選題前期參加平臺提供的測試了解自己的專業知識掌握能力和動手能力,以便選題。同時也為教師了解學生具體情況提供參考,確保畢業論文(設

23、計)選題工作的順利開展。此外系統也要解決畢業設計的相關管理業務功能,包括學生與教師在畢業設計制作期間的論文交流功能。為了保證系統能發揮其作用,系統管理員要把所有學生和教師信息和測試用題庫按照數據庫相應的表的要求存入數據庫中,導師在學生測試之前應該提供所有可選的課題和課題建議和每個課題特別要求哪些課程信息到系統。系統的功能應該包括所有用戶的合法登陸,系統根據學生所在專業設置的課程出題,從學生的測試結果來判斷和推薦適合該學生做的課題和適合選擇的老師。教師可以從系統中查看預先選擇了自己的學生的測試成績。在畢業設計制作期間,學生可以通過系統來與導師交流制作的論文等。該系統使用應該盡量簡單,容易被理解。

24、3.2 系統功能分析系統功能分析可以幫助將整個系統的任務細化成較小的模塊,將一個大問題進行分解。為了能夠實現學生的專業知識掌握能力和動手能力的測試、教師通過學生的測試成績來了解學生綜合能力,系統管理員對系統的后臺數據庫進行管理,系統應該分別對這三個角色的功能進行實現。系統按角色的功能分為三大功能模塊,如圖3-1所示。學生操作教師操作管理員操作選題測試管理個人信息上傳論文預選老師保存測試報告管理題庫信息管理用戶信息管理員登陸查看測試結果畢業設計選題測試及管理系統功能下載教師批改論文修改密碼管理課題信息學生登陸管理課程信息查看學生測試成績管理學生預選信息教師登陸管理個人信息管理學生論文管理課題信息

25、分配課題圖3-1 功能模塊圖每個功能模塊之間是相互獨立的。3.3 系統用例建模系統的角色是指系統外部的實體,一般系統參與者為系統用戶、與所建造系統交互的其他系統和一些可以運行的進程。由于本系統與其他系統和進程沒有直接的聯系,是一個獨立的系統,所以系統主要參與的角色分為三個:學生、教師和系統管理員。對于不同角色使用該系統是要保證系統部分信息已經完善,部分用例有時間上的優先順序。所有用戶使用系統時必須先登錄,學生和教師的部分必填的個人信息要導入到系統中,教師在學生測試之前要完成對課題的設置和課題建議工作。從系統概述可得到,學生參與者具有的功能如圖3-2所示。圖3-2 學生用例圖student(學生

26、)的用例有:login:登陸系統logout:退出系統testing:測試 extract_questions:抽取試題answer_questions:回答測題submit_test_paper:提交考卷manage_personal_infor:管理個人信息view_personal_infor:查看個人信息change_password:修改密碼view_test_result:查看測試結果view_test_report:查看測試報告save_test_report:保存測試報告manage_thesis:管理論文upload_thesis:上傳論文download_thesis:下載

27、已批改論文apply_teacher:預選導師對于學生的功能可以看到選題測試功能包括:抽取試題、回答問題、提交答卷用例。選題測試用例說明:前置條件:進入主頁面,登錄系統。基本事件流:1. 輸入用戶名、密碼和用戶身份2. 點擊“登錄”,系統通過對用戶信息驗證和數據庫中用戶信息的對比檢測用戶的合法性,如果用戶合法則進入學生后臺管理首頁3. 單擊“我要測試”菜單下的“開始測試”,如果用戶還未測試則進入測試頁面4. 單擊“抽取試題”按鈕,做完測題后,單擊“提交答卷”按鈕,測試完畢備選事件流:1. 當用戶輸入的用戶名或密碼為空時,系統將不進行跳轉,不出現用戶操作頁面2. 當用戶已經測試,則不跳轉到測試頁

28、面,而是跳轉到提示已經測試的頁面后置條件:用戶測試完成,得到測試結果和測試報告。教師實體具有的功能如圖3-3所示。圖3-3 教師用例圖teacher(教師)的用例有:login:登陸系統logout:退出系統attribute_thesises:分配課題manage_student_thesis:管理學生論文fill_in_thesis_requirement:填寫課題要求課程view_student_test_result:查看學生測試結果manage_apply_information:管理學生預選情況manage_thesis:管理課題add _thesis:添加課題delete_the

29、sis:刪除課題update_thesis:更新課題view_thesis:查看課題manage_personal_infor:管理個人信息change_password:修改密碼view_personal_infor:查看個人信息教師的主要功能給出選題內容及建議,通過查看學生的測試結果和測試報告了解學生情況。查看學生測試結果用例說明:前置條件:用戶登錄成功,學生完成測試。基本事件流:1. 輸入用戶名、密碼和用戶身份2. 點擊“登錄”,系統通過對用戶信息驗證和數據庫中用戶信息的對比檢測用戶的合法性,如果用戶合法則進入教師后臺管理首頁3. 教師點擊“學生測試成績”菜單下的“查看測試成績”,系統查

30、找到學生測試成績,提取學生測試信息返回顯示備選事件流:學生未測試則提示學生尚未有測試結果。后置條件:顯示學生測試成績系統管理員實體具有的功能如圖3-4所示。圖3-4 管理員用例圖administrator(管理員)的用例有:login:登陸系統logout:退出系統manage_users_infor:管理用戶信息add_user_infor:添加用戶信息delete_user_infor:刪除用戶信息update_user_infor:更新用戶信息select_user_infor:查找用戶信息manage_questions_infor:管理題庫add_questions_infor:添加

31、測題delete_questions_infor:刪除測題update_questions_infor:更新測題view_questions_infor:查找測題manage_thesis_infor:管理課題信息view_thesis_infor:查看課題信息update_password:修改密碼管理員的主要功能之一是對學生信息進行管理。學生信息管理用例說明: 前置條件:管理員合法登陸,進入管理員后臺管理首頁基本事件流:1. 單擊“學生信息管理”菜單下的“查看學生信息”菜單,系統從數據庫選出所有學生信息在頁面顯示2. 單擊一條學生信息記錄后的“編輯”按鈕,對信息進行修改單擊“確定”3. 單

32、擊一條學生信息記錄后面的“刪除”按鈕,對信息進行刪除備選事件流:當用戶表中數據的外鍵被修改時,如果與外鍵所在基本表中數據不符合,則無法修改。當用戶要管理的表格中數據為空時,系統不顯示數據。后置條件:數據管理成功,數據庫保存修改后的表信息,數據庫刪除記錄。小結: 系統需求分析需要注意很多原則,避免出現的需求出現沖突。通過分析得到的需求還必須與用戶所要的需求相一致。如果對用戶的需求誤解了將對以后的系統的設計和實現造成很大的誤導,并且不好改動,所以這一步需謹慎。通過對系統進行需求分析,對系統的實現更加細化和明確。4 系統設計系統設計時站在對系統規劃的角度來考慮系統該如何實現、如何將需求轉換為軟件設計

33、的問題。系統設計分為概要設計和詳細設計。根據軟件工程中軟件設計的抽象與逐步求精原則5,先從系統的整個結構出發來設計系統總體架構設計,再設計系統需要實現的功能模塊、系統界面、數據庫表等。4.1 設計目標及原則隨著科技的發展,越來越多的自動化的產品被應用于生活中,特別是年輕人對這些數字化產品特別熱衷,這樣使得現在的孩子們都不愿意去使用不易理解,使用復雜的產品。從用戶的使用感受考慮,系統設計時應該盡量以使用簡單、操作一目了然、界面友好、有交互性為主。基于主要用戶為學生團體,所以界面風格上設計的要清新,美觀。對于不同專業的學生要評測出真實的水平,測試系統題型應該與學生所學專業設置的課程掛鉤,并且有難易

34、程度的過度。軟件總體框架要以javaee思想來設計。對于數據庫的設計,要充分考慮到數據的存儲需求并充分利用不同數據類型的優勢來選擇存儲數據類型。最終的系統能夠實現所有需求獲取階段得到的需求,主要是學生在線測試和對測試進行分析的功能以及論文交流的功能,能夠使老師通過系統了解學生的優勢和劣勢,對導師真正出畢業設計選題提供參考。系統設計還應該以易于實現、易于測試、易于維護為基本理念。系統設計的原則是指導設計過程的。為了能設計出符合需求的系統,設計時要遵守以下原則:(1)結構應該分層次,從而建立軟件成分之間的控制6。(2)設計應當模塊化,邏輯上將軟件劃分為完成特定功能或子功能的部件。(3)設計應該包含

35、數據抽象和過程抽象(4)模塊與外部環境之間的接口盡量少(5)系統盡量簡單,減少處理的時間和費用(6)系統數據的一致性,對于系統中的相同信息的顯示和存儲要一致(7)系統具備一定的出錯處理功能,提高系統的可靠性。4.2 系統總體架構設計系統采用的是javaee技術,總共分為表示層、業務邏輯層、數據訪問層三層來考慮。系統體系結構如下圖4-1所示。web瀏覽器web表示層(jsp、action)業務邏輯層(service)dao層(dao)數據庫struts技術http請求http響應圖4-1 體系結構圖通過web瀏覽器來作為mvc架構的視圖層。web表示層用于獲取提交的數據、顯示請求的業務功能返回的

36、數據。業務邏輯層是處于承上啟下的位置,它完成了dao層的調用又被web表示層調用。dao層調用bean中對象實現持久化方法,對關系數據庫進行操作。系統運作流程為web瀏覽器發送http請求給jsp頁面,在jsp頁面中請求某項業務,jsp將調用service層對業務實現的功能函數,service層在調用不同的dao層中的方法,dao層每個被調用的方法則實現了對數據庫的操作,操作完成后將數據庫的數據返回給dao層中的方法,dao層再返回數據給service層,service層將數據返回給jsp頁面,jsp通過struts2標簽、html標記來顯示數據,返回http響應到web瀏覽器。此時一次請求服

37、務完成。4.3 系統數據庫設計根據對系統的分析得到如下的實體關系圖如下圖4-2所示:圖4-2 系統e-r圖從圖中可以看到各個實體間的聯系。關系型數據庫要滿足三類完整性約束,即實體完整性,參照完整性,用戶自定義的完整性7。通過這三個約束將實體型轉換得到關系模式即為數據庫的邏輯結構設計:學生(學號,學生姓名,登陸密碼,性別,專業號,郵箱號,測試標記)課程(課程號,課程名,專業號)教師(教師號,教師姓名,登陸密碼,性別,允許指導學生數,學院號,郵箱號)管理員(管理員號,管理員姓名,登陸密碼)專業(專業號,專業名,學院號)學院(學院號,學院名)學生測試課程(學號,課程號,課程名,得分,測試日期)問題(

38、問題編號,問題內容,選項a內容,選項b內容,選項c內容,選項d內容,答案選項,分數,課程號)論文指導(學號,論文號,論文主題,學生論文存放位置,更新標志,學生上傳日期,教師號,教師論文存放位置,教師上傳日期)課題(課題號,課題名,出題日期,課題介紹,課題研究建議,教師號)課題要求(課題號,課題名,課程號,課程名)預選老師(學號,教師號,預選標志,教師同意標志,拒絕原因)4.4 (web)表示層設計表示層是服務器與用戶之間的接口。根據所見即所得原理,表示層將業務邏輯層返回的數據以用戶能理解的形式在頁面中顯示,用戶通過表示層提供的接口輸入數據,通過頁面來傳遞數據到后臺業務邏輯層進行處理。本系統的表

39、示層主要通過不同的action控制在jsp頁面體現。其中又用到了struts2的標簽和ajax技術。struts2標簽使得數據顯示更加更加方便,代碼量減少,同時數據傳輸方便。當業務邏輯層將數據傳遞給相應的action后,通過struts.xml中的映射來跳轉到相應的jsp頁面,在頁面中使用struts2標簽就可以將傳遞過來的參數顯示在頁面中。用戶在使用系統時更希望界面簡單,操作簡便,有盡量少刷新操作和等待時間。ajax技術實現了瀏覽器與服務器之間數據的異步傳輸,ajax中是使用javascript來傳遞數據給業務邏輯層,業務邏輯層將處理后要返回的數據傳回給請求數據的客戶端jsp頁面,頁面再通過

40、dom(document object model)顯示新數據,在整個過程中用戶可以不手動刷新頁面。為了更好的實現導航的功能,系統表示層設計時,讓不同角色的用戶的操作都顯示在導航欄,當頁面跳轉時,導航欄不會改變位置,而請求的頁面則顯示在一個固定的框架中。在頁面顯示數據時傳遞的是對象數組。根據需求分析得到學生登陸后的業務功能實現如下活動圖4-3所示。圖4-3 學生活動圖當學生為登陸后可以進行測試或查看個人信息,如果還未進行測試則測試成績、測試報告、預選老師業務都無數據顯示,如果已經測試則可以查看到測試成績、測試報告、預選老師、退出系統。學生選題活動圖如圖4-4所示。圖4-4學生選題活動圖學生首先

41、進行測試,系統根據學生擅長的課程推薦課題及老師,學生預選課題對應的老師。老師通過查看預選了課題的學生的測試成績決定是否同意學生預選。老師同意學生預選則可以分配課題給學生,學生可以查看課題信息;拒絕則給出拒絕信息,學生可以查看老師拒絕信息。4.5 業務邏輯層設計業務邏輯層(service層)主要是針對不同的業務需求來調用數據訪問層(dao層)的方法,從而實現不同業務需求功能。業務邏輯層提供了一系列可提供給用戶的服務,是對用戶問題提供解決的方法。業務邏輯層的實現是通過調用數據訪問層的方法來實現的。業務邏輯層不需要知道如何操作具體數據,只要知道通過dao層的什么方法得到什么參數,或者傳遞什么參數從而

42、能達到功能的實現。對于數據訪問層而言,業務邏輯層主要充當的是調度者的角色,而對(web)表示層而言,業務邏輯層充當的是被調度的角色。當學生申請導師時要傳遞學號和教師號到service層來調用service層的申請方法,service層將參數傳遞至dao層,dao層再調用數據庫操作方法,操作完成后以applyinfor對象的形式返回申請導師表中的一條記錄,其中applyinfor中的學號stunum和教師號teachernum分別依賴于學生表student中的學號和教師表teacher中的教師號,具體如圖4-5所示。圖4-5 預選導師過程使用的類圖service層的applyinforsi對象中

43、的setapplyflag()方法為預選導師時調用的方法,該方法調用了dao層applyinfordi對象的setapplyflag()方法。4.6 (dao)數據訪問層設計(dao)數據訪問層主要實現的功能是對數據庫中的數據進行操作,簡而言之就是一系列的對數據庫中的記錄進行增加、刪除、修改、查找操作。dao層調用了bean實體類,使用sql語句來操作數據庫,為了體現類的封裝性,實現時則是調用封裝好的數據庫操作對象中的方法來實現對數據庫的操作。從數據庫設計中得到相應的dao層的設計如圖4-6所示。圖4-6 dao層設計的類文件admindi.java:對管理員表進行操作applyinfordi

44、.java :對學生預選導師表進行操作coursedi.java:對課程表進行操作institutedi.java:對學院表進行操作majordi.java:對專業表進行操作pagedi.java:對上下頁跳轉進行判斷questiondi.java:對測題表進行操作stucoursedi.java:對學生測試課程表進行操作studentdi.java:對學生表進行操作teacherdi.java:對教師表進行操作thesisinfordi.java:對課題表進行操作thesisrequirementdi.java:對課題要求表進行操作dao層與數據庫操作對象間的類圖如圖4-7所示。圖4-7 測

45、題dao操作測題信息表類圖測題dao(questiondi)通過數據庫連接connect類中的連接數據庫的方法來獲取數據庫連接,再將連接和sql語句傳遞給數據庫操作dboperator類中的方法來實現對數據庫中question表的操作。questiondi中對測題question對象進行了實例化作為dao層的返回參數。小結: 系統設計在軟件工程中占了很重要的角色,并且是占用整個開發周期中比較長時間的階段。系統設計的好壞直接影響系統實現時的復雜度,如果設計時對需求分析不充分則業務功能模塊就會缺少從而影響系統功能。通過對系統設計的分析知道該從哪個方面開始著手做,并且清楚了每個角色的操作。對數據庫每

46、個字段的設計意義也更明確。理解了整個javaee在系統架構中的表現形式。5 系統實現系統實現是系統設計之后的工作,是將系統設計轉換為可執行的程序代碼的過程。只有在對數據庫設計、系統結構充分分析之后進行系統開發工作才能符合需求。系統實現需要掌握系統開發工具的使用方法和程序設計語言,本系統主要應用程序設計語言有java、javascript,開發技術有struts、ajax。系統實現按功能模塊的劃分來分別實現,循序漸進。5.1 開發環境配置本系統的技術要求是基于javaee的web應用系統。所以要從硬件和軟件兩個方面考慮來配置系統。從系統硬件需求角度出發,系統是在個人pc機上開發的,普通的pc機的

47、配置即可用于開發本系統。從軟件角度出發,系統需配置web系統開發工具,所以選擇了myeclipse 8.0作為開發軟件。由于用到的數據很多,為了便于管理和使用的快速、穩定,選擇mysql server 5.1作為系統的數據庫。因為mysql數據庫是要通過sql命令來操作的不是很方便,為了對數據庫的操作能更簡便,系統還需安裝navicate lite 8.2,這是一款具有可視化圖形用戶界面,操作安全簡便的mysql數據庫服務器管理和開發工具。系統采用的是tomcat作為web應用服務器,tomcat技術先進、性能也很穩定,是當前非常受歡迎的一款服務器。首先,從各個官方網站下載好各個軟件,因為進行

48、javaee開發時使用的一系列軟件都需要javase的支持,所以首先安裝jdk開發環境。之后根據安裝向導安裝myeclipse 8.0、tomcat、navicate lite 8.2、mysql server 5.1等軟件。啟動tomcat,通過在瀏覽器中輸入網址:http:/localhost:8080/后是否出現服務器的主頁面來查看服務器是否正常運行。啟動myeclipse,在myeclipse對服務器進行配置,在myeclipse中建立一個web項目,通過對項目的部署,在瀏覽器中輸入網址來瀏覽本地建立的項目測試tomcat服務器與myeclipse能正確連接。打開navicat,新建一

49、個數據庫,通過web項目中.java后綴類型的文件中輸入簡單的數據庫操作語句,運行該文件后查看數據庫能否成功連接。當myeclipse和tomcat之間、myeclipse和navicate lite之間、navicate lite和mysql server之間都能建立聯系則開發環境搭建完畢。5.2 (web)表示層實現web表示層的實現是通過struts調用對應的action在再jsp中體現來實現的。表示層主要功能有分析提交的動作和ajax提交的異步請求、顯示請求的數據與分析返回給ajax中json的數據然后將其顯示到用戶界面。首先需要對struts2進行配置。具體的配置信息寫入web.xm

50、l文件。 index.jsp struts2 org.apache.struts2.dispatcher.filterdispatcher struts2 /* web.xml文件配置好后對所有請求均過濾,在struts.xml中對不同請求決定對應的是哪個action。以學生登陸后開始測試為例,當學生登陸后選擇“開始測試”菜單,進入請求對應的action,代碼如下:a href=courseaction.action?stunum= target=content開始測試請求courseaction.action,并且將參數stunum傳遞到action中,在struts.xml中配置跳轉的ac

51、tion和不同返回結果應該跳轉的頁面,具體配置如下:/student/test.jsp/student/tested.jsp此時在com.action.courseaction中對請求的任務提供數據,具體實現如下:package com.action;/引入所需要的包import java.util.list;import com.service.implements.studentsi;import com.opensymphony.xwork2.actionsupport;suppresswarnings(serial)public class courseaction extends a

52、ctionsupportprivate string stunum;/學生學號public string getstunum() /學號的get方法return stunum;public void setstunum(string stunum) /學號的set方法this.stunum = stunum;public string execute() throws exception this.stusi = new studentsi();if(this.stusi.testflagiso(stunum)/查看用戶是否已經測試return tested;/已經測試return succe

53、ss; /未測試當根據struts.xml文件中的映射跳轉到com.action.courseaction.action,自動執行setstunum()方法給變量stunum賦值,再執行execute()方法,execute()方法調用了service層的方法來判斷用戶是否已經測試,如果學生已經測試測execute()方法返回值為“tested”字符串,如果學生還沒有進行測試則返回值為“success”字符串,在struts.xml文件中標簽下來配置不同的返回結果所跳轉的頁面,當返回返回“tested”字符串則跳轉到系統根目錄下student/tested.jsp頁面提示已經測試,如果返回的是

54、“success”字符串則跳轉到系統根目錄下的student/test.jsp頁面進行測試。 5.3 業務邏輯層實現業務邏輯層實現是通過service層來實現的,service層編寫不同的業務邏輯,根據業務需要的數據來對dao層的方法進行了調用來獲取數據實現業務功能。業務邏輯層不需要考慮如何操作底層數據庫,只需傳入參數給dao層的方法,再通過dao層的方法來獲取所需的數據。以測試試題的業務邏輯為例進行分析業務邏輯層的實現。package com.service.implements;import java.util.list;import com.bean.question;/引入bean中的question類import com.dao.implements.questiondi;/引

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論