基于Java EE的系統(tǒng)設(shè)計與實現(xiàn)(論文+PPT
分類號_______________ 密級________________ UDC _______________ 學(xué)號? 畢業(yè)設(shè)計(論文) 論文題目基于Java EE平臺項目管理系統(tǒng)的設(shè)計與實現(xiàn)Thesis TopicDesign and Implementation of Project Management System Based on Java ee Platform學(xué)生姓名學(xué) 號所 在 院 系專 業(yè) 班 級導(dǎo)師姓名職稱完成日期 畢業(yè)設(shè)計(論文)任務(wù)書 第1頁 畢業(yè)設(shè)計(論文)題目:基于 java EE平臺的項目管理系統(tǒng)設(shè)計與實現(xiàn)畢業(yè)設(shè)計(論文)要求及原始數(shù)據(jù)(資料):1.調(diào)查基于Java EE平臺的應(yīng)用系統(tǒng)的現(xiàn)狀和發(fā)展趨勢;2.深入了解Java EE平臺的相關(guān)技術(shù)和開發(fā)環(huán)境與工具;3.熟練掌握與基于Java EE平臺的應(yīng)用開發(fā)的編輯語言和開發(fā)技巧;4.熟練掌握系統(tǒng)開發(fā)的工作流程和技巧;5.熟練掌握系統(tǒng)測試設(shè)計和評估的方法;6.訓(xùn)練檢索文獻資料和利用文獻資料的能力; 7.訓(xùn)練撰寫技術(shù)文檔與學(xué)位論文的能力。 第2頁 畢業(yè)設(shè)計(論文)主要內(nèi)容:1.綜述項目管理系統(tǒng)國內(nèi)外應(yīng)用現(xiàn)狀;2.介紹基于Java EE平臺的相關(guān)應(yīng)用開發(fā)技術(shù)與開發(fā)環(huán)境與工具;3.介紹項目管理系統(tǒng)的開發(fā)的需求分析; 4.介紹項目管理系統(tǒng)應(yīng)用程序的總體設(shè)計;5. 介紹項目管理系統(tǒng)應(yīng)用程序的詳細設(shè)計與實現(xiàn);6.系統(tǒng)測試與評估;7.今后工作與展望。學(xué)生應(yīng)交出的設(shè)計文件(論文):1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計論文;2.包括畢業(yè)設(shè)計論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設(shè)計電子文檔及其它相關(guān)材料。 第3頁 主要參考文獻(資料):[1] 張志豪.基于Java EE的里程碑科技項目管理系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),2014.[2] 康蔣偉,周愛玲,邱建林.高??蒲许椖抗芾硐到y(tǒng)的設(shè)計與實現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2016年36期[3] 劉亞賓,精通Eclipse--JAVA技術(shù)大系,電子工業(yè)出版社,2005.[4] 于萬波,網(wǎng)站開發(fā)與應(yīng)用案例教程,清華大學(xué)出版社,2009.[5] 楊學(xué)瑜,高立軍,軟件開發(fā)過程與項目管理,電子工業(yè)出版社,2008.[6] 張潔才,Java web應(yīng)用開發(fā)教程,科學(xué)出版社,2005.[7] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010.[8] 黎連業(yè)、王華、李淑春,軟件測試與測試技術(shù),清華大學(xué)出版社,2009.[9] 黃梯云著.管理信息系統(tǒng).北京.電子工業(yè)出版社.2006 .[10].James D. McCaffrey等著.NET軟件測試自動化之道[M]. 北京.電子工業(yè)出版社.2007.[11].甘仞初著.信息系統(tǒng)開發(fā).北京.經(jīng)濟科學(xué)出版社.2007.[12].馬赫著. Dreamweaver MX 2004 網(wǎng)頁設(shè)計經(jīng)典108例.中國青年出版社.2005.[13].唐友國 湛洪波著.JSP網(wǎng)站開發(fā)詳解.電子工業(yè)出版社2008年10月.[14].(美)H.M.Deitel,P.Jdeitel著.Java程序設(shè)計教程(第五版). 清華大學(xué)出版社.2004.[15].(美)Elliotte Rusty Harold著.Java Network Programming.東南大學(xué)出版社 .2005.[16](美)John J.Patrick著.SQL基礎(chǔ)(第二版).清華大學(xué)出版社.2004.專業(yè)班級學(xué)生要求設(shè)計(論文)工作起止日期指導(dǎo)教師簽字日期教研室主任審查簽字日期系主任批準簽字日期 基于Java EE平臺項目管理系統(tǒng)的設(shè)計與實現(xiàn) 摘 要 隨著社會信息化的發(fā)展,很多的社會管理問題也一并出現(xiàn)了根本性變化,項目公司的報表及文件管理也發(fā)生了變化,以前的管理是一個分布式的信息,然后圍繞中心由通過簡單的來傳輸信息,這使得辦事效率非常低下,所以需要需要適用信息貨的發(fā)展,開發(fā)一套項目的管理信息系統(tǒng)。 此在這個系統(tǒng)中我綜合應(yīng)用了MySQL、Servlet、JSP等知識。網(wǎng)頁界面的結(jié)構(gòu)設(shè)計以實用性出發(fā),具有易于操作、簡潔、方便等特點。在設(shè)計中,首先,運用HTML語言對網(wǎng)站的靜態(tài)頁面進行精細的加工并且在網(wǎng)站的美工方面取得了良好的效果。其次,對于Java編程、JSP的動態(tài)編程以及MySQL數(shù)據(jù)庫進行努力學(xué)習(xí)和大量實踐,并運用到了網(wǎng)站的建設(shè)中。 本論文就項目管理系統(tǒng)進行了論述。訪問本系統(tǒng)的用戶主要是管理員,管理員的主要功能有:項目信息管理、項目資源、經(jīng)費、進度、成果等信息的管理 關(guān)鍵詞:項目管理;JSP;MySQL;Myeclipse Design and Implementation of Project Management System Based on Java EE Platform? Abstract With the development of social information, a lot of social management problems also followed a fundamental change, the project company's report management has also changed, the previous management is a distributed information, and then around the center to transfer information from the Simple manual transmission, which makes inefficient service, so the need for information product development, enterprise project management information system development. In this system, I integrated the MySQL application Servlet, JSP and other knowledge. In practice, the structure of Web interface structure, simple and convenient operation, simple operation, convenient and so on. In the design, first of all, the use of language HTML page fine processing and art website static page has achieved good results. Second, Java programming, dynamic programming JSP and MySQL database efforts to learn and practice, and to be implemented. This paper discusses the enterprise project management system. Who is the user who visits the system is mainly the administrator, the administrator's main responsibilities are: enterprise information projects, project resources, funds, progress, results and other information management management. Key word: project management, JSP, MySQL, MyEclipse 目錄
摘要1Design and Implementation of Project Management System Based on Java ee Platform2Abstract21.緒論51.1課題背景51.2目的和意義51.3開發(fā)設(shè)計思想51.4開發(fā)目標(biāo)52.開發(fā)工具和環(huán)境簡介72.1 Java Server Page 簡介72.2 MySQL簡介82.3 MyEclipse 簡介102.4MySQL 數(shù)據(jù)庫102.5JAVA 簡介102.6Tomcat簡介112.7 MVC模式113.系統(tǒng)功能分析143.1 可行性研究143.2 需求分析153.3 系統(tǒng)功能的分析153.4 數(shù)據(jù)字典164.項目管理系統(tǒng)的總體設(shè)計174.1 系統(tǒng)的功能設(shè)計目標(biāo)174.2 項目管理系統(tǒng)功能模塊174.4 系統(tǒng)總體結(jié)構(gòu)圖264.5項目管理系統(tǒng)用例圖275.數(shù)據(jù)庫設(shè)計295.1 數(shù)據(jù)庫系統(tǒng)概述295.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計296.系統(tǒng)實現(xiàn)326.1程序說明326.2 網(wǎng)頁主頁面模塊327.系統(tǒng)測試337.1 軟件的安裝與配置337.2 軟件調(diào)試337.3 軟件測試348.結(jié)束語36致謝37參考文獻38附錄:外文翻譯:391.英文原文392.中文翻譯43 緒論
課題背景
隨著社會信息化的發(fā)展,社會上很多事務(wù)的管理也跟著相應(yīng)發(fā)生了根本的變化,項目申報管理也跟著發(fā)生了變化,以前的管理是一種各地信息分散然后再集中到中央,信息的傳送途徑是通過簡單人工傳送,這樣使辦事效率低。此外,各個分散機構(gòu)的項目申報在辦理后不能及時集中到中央數(shù)據(jù)中心,不利于管理層的信息統(tǒng)計與決策。二十一世紀是信息技術(shù)的時代,信息量高度膨脹,人們對于信息的需求和控制欲越發(fā)強烈,各行各業(yè)對信息自動化和控制自動化的需求日益強烈。隨著計算機和計算機網(wǎng)絡(luò)的普及,使人們具有了處理大量的、繁瑣的、復(fù)雜的、無序的信息的能力,并且隨著數(shù)據(jù)庫技術(shù)的逐步成熟和逐步深入到社會科學(xué)的各個領(lǐng)域,人們可以對以前無法解決或無法在短時間內(nèi)解決的信息問題做出迅速的判斷和解決。? 目的和意義
基于以上現(xiàn)狀,采用先進的信息化管理系統(tǒng)可以解決這些問題。這樣就方便了管理層的統(tǒng)一管理和決策,同時提供了工作效率。本系統(tǒng)用于對轄區(qū)內(nèi)單位項目申報立項流程的管理,傳統(tǒng)模式的管理花費很多的精力,采用信息新技術(shù)優(yōu)化管理手段,強化申報流程,加強項目監(jiān)管,提高工作效率。 本論文主要包括軟件,數(shù)據(jù)庫和網(wǎng)絡(luò)技術(shù),可以對信息快速的收集整理,在這個過程中,考察了學(xué)生在大學(xué)期間所學(xué)的知識以及綜合知識學(xué)習(xí)能力,并且在解決問題的水平有了很大提高,而且增強了對項目管理方面的理解與認識。我們運用和掌握了科學(xué)的研究方法,首先,我們確立了正確的設(shè)計思想,獨立的進行思考,積極探索,勇于發(fā)現(xiàn)錯誤并及時改正,對今后的學(xué)習(xí)生活而言是一個難能可貴的經(jīng)歷。 開發(fā)設(shè)計思想
此在這個系統(tǒng)中我綜合應(yīng)用了MySQL、Servlet、JSP等知識。網(wǎng)頁界面的結(jié)構(gòu)設(shè)計以實用性出發(fā),具有易于操作、簡潔、方便等特點。在設(shè)計中,首先,運用HTML語言對網(wǎng)站的靜態(tài)頁面進行精細的加工并且在網(wǎng)站的美工方面取得了良好的效果。其次,對于Java編程、JSP的動態(tài)編程以及MySQL數(shù)據(jù)庫進行努力學(xué)習(xí)和大量實踐,并運用到了網(wǎng)站的建設(shè)中。 工程管理是一種遵循客觀經(jīng)濟規(guī)律的管理活動,是系統(tǒng)的全方位的對工程建設(shè)項目從追蹤各類項目信息開始,然后編制項目書,進行研究,開展設(shè)計和施工等工作,直到項目竣工投產(chǎn)或投入使用的全過程的管理。 開發(fā)目標(biāo)
高校是科技發(fā)展的重要力量,而企業(yè)中文件與項目管理更為重要,因此為了促進高校科研發(fā)展、提高企業(yè)管理水平及服務(wù)水平的管理在日常管理中的作用日益凸現(xiàn)。傳統(tǒng)的手工管理和計算機的輔助管理越來越不能滿足新形勢下發(fā)展的要求,有必要對管理信息進行計算機的網(wǎng)絡(luò)管理。 在我國,某些高?;蚱髽I(yè)一直使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。作為計算機應(yīng)用的一部分,使用計算機對文件檔案信息進行管理,具有手工管理所無法比擬的優(yōu)點。所以建立項目管理系統(tǒng),使管理自動化,提高信息處理的速度和準確性十分必要。 開發(fā)工具和環(huán)境簡介
2.1 Java Server Page 簡介
JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。? Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端就是一個HTML文本,因此客戶端只要有瀏覽器能瀏覽。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。JSP技術(shù)的優(yōu)點: (1)一次編寫,到處運行。除了系統(tǒng)之外,代碼不用做任何更改。? (2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/.net的局限性是顯而易見的。? (3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務(wù)器進行集群和負載均衡,到多臺Application進行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。? (4)多樣化和功能強大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下 (5)支持服務(wù)器端組件。web應(yīng)用需要強大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計實現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來實現(xiàn)復(fù)雜商務(wù)功能。 內(nèi)部對象說明:request 客戶端請求,此請求會包含來自GET/POST請求的參數(shù); response 網(wǎng)頁傳回客戶端的響應(yīng);pageContext 網(wǎng)頁的屬性是在這里管理; session 與請求有關(guān)的會話; application servlet正在執(zhí)行的內(nèi)容;out 用來傳送響應(yīng)的輸出流; config 代碼片段配置對象;page JSP網(wǎng)頁本身; exception 針對錯誤網(wǎng)頁,未捕捉的例外。 2.2 MySQL簡介
MySQL是目前屬于Oracle旗下,由瑞典公司MySQL AB開發(fā)的關(guān)系型數(shù)據(jù)庫管理軟件。目前,MySQL在互聯(lián)網(wǎng)上的中小型網(wǎng)站上得到了廣泛的應(yīng)用。由于其體積小、速度快、整體擁有成本低,則許多中小型網(wǎng)站選擇MySQL作為網(wǎng)站,這樣可以很大程度的降低網(wǎng)站整體擁有成本。 數(shù)據(jù)庫物理設(shè)計階段的目標(biāo)是指實際的計算機系統(tǒng)(硬件和數(shù)據(jù)庫管理系統(tǒng)),給指定的數(shù)據(jù)庫模型(database model)確立恰當(dāng)?shù)拇鎯Y(jié)構(gòu)以及存取方法。其中“恰當(dāng)”含有兩種含意:其一,數(shù)據(jù)庫使用的存儲空間要盡可能的少;其二,數(shù)據(jù)庫反應(yīng)時長要盡可能的短。 以作出令人滿意的數(shù)據(jù)庫設(shè)計為目標(biāo),數(shù)據(jù)庫設(shè)計人員應(yīng)該掌握數(shù)據(jù)庫管理系統(tǒng)的核心規(guī)則;能很好的運用DBMS的實際運行環(huán)境,尤其注意數(shù)據(jù)應(yīng)用管理的反應(yīng)時長以及頻率的需求;明確外部存儲設(shè)施的特性。 物理結(jié)構(gòu)設(shè)計階段的目標(biāo)是在確定數(shù)據(jù)庫的存儲結(jié)構(gòu)和訪問方法之前提供有關(guān)DBMS提供的信息要做到充分的熟悉,做到能合理優(yōu)化數(shù)據(jù)庫中物理設(shè)計的參數(shù)。這種優(yōu)化的有效性直接關(guān)系著DBMS的性能,被稱為數(shù)據(jù)庫系統(tǒng)的內(nèi)模式。 數(shù)據(jù)庫事務(wù)的四大特性(簡稱ACID)是:? 原子性(Atomicity)? 事務(wù)的原子性是指,事務(wù)所包含的被當(dāng)做數(shù)據(jù)庫邏輯工作個體的程序,對數(shù)據(jù)的操縱要求“一針見血”,即沒有完全確定要修改的內(nèi)容時一個不改,一旦確定目標(biāo)就要全部都改,這種特性被稱為原子性。? 例如添加圖片事務(wù)分為2個步驟(1)上傳圖片(2)添加圖片所在的相冊類型。不可能添加了圖片類型,卻沒有上傳。2個步驟必須同時完成才能實現(xiàn)添加圖片事務(wù)。? (2)一致性(Consistency)? 事務(wù)一致性意味著數(shù)據(jù)庫不會隨著事務(wù)更改而更改。此屬性稱為事務(wù)一致性。如果是的話,說數(shù)據(jù)庫是一致的。數(shù)據(jù)庫中事務(wù)一致性的標(biāo)準則要求數(shù)據(jù)庫的狀態(tài)需要滿足所有完整性約束。 例如完整性約束圖片的刪除,如果圖片刪除事務(wù)發(fā)生更改,則數(shù)據(jù)庫中的數(shù)據(jù)也必須刪除。? (3)分離性(亦稱獨立性Isolation)? 分離性指的是并發(fā)的事務(wù)是相互隔離的。即對并發(fā)事務(wù)正在關(guān)聯(lián)的數(shù)據(jù)以及內(nèi)部動作進行分割,遠離其他交易。這是為了防止并發(fā)事務(wù)的發(fā)生,而同樣的數(shù)據(jù)操作可能會出現(xiàn)死鎖現(xiàn)象。? (4)持久性(Durability) 持久性意味著已持久化的事務(wù)不會因為外部環(huán)境關(guān)閉或其他異常現(xiàn)象的發(fā)生而發(fā)生改變。即只要事務(wù)進行了持久化操作,則數(shù)據(jù)庫數(shù)據(jù)的改變就會在數(shù)據(jù)庫管理系統(tǒng)的管理下恒久不變,還可以還原已提交事務(wù)的更改。 MySQL數(shù)據(jù)庫提供了一些強大的功能,可以在幫助使用者獲取信息的同時,對數(shù)據(jù)進行多樣的數(shù)據(jù)處理。除此之外,便利的數(shù)據(jù)庫分享功能使管理人員可以更好的作出恰到的決策。 不過,單獨的DBMS并不能完全滿足信息系統(tǒng)的開發(fā)者對數(shù)據(jù)處理的需求,又或是需要更加便捷的方式去實現(xiàn)。 因此,開發(fā)者們會在某種在DBMS中,DIY需要自己的應(yīng)用程序來形成一個應(yīng)用程序信息系統(tǒng),以滿足應(yīng)用需求和盡可能簡單。這就是所謂的兩個發(fā)展。 MySQL 還具有以下特點: 1.更便宜的查詢和操縱數(shù)據(jù) MySQL提供了簡化查詢和操縱數(shù)據(jù)的工具。 2.提供信息共享功能(web功能) MySQL簡化了數(shù)據(jù)庫功能,他將桌面以及網(wǎng)址的數(shù)據(jù)庫功能進行了整合,使得它可以輕易將數(shù)據(jù)庫運用到瀏覽器中。這樣它就能僅通過內(nèi)網(wǎng)的Internet就能實現(xiàn)信息共享。 3.有關(guān)于信息處理方面的問題 用戶和開發(fā)人員可以結(jié)合MySQL接口(客戶端)的易用性和SQL Server的可擴展性和可靠性來對信息進行創(chuàng)建解決方案。 4.DIY數(shù)據(jù)庫窗口 MySQL可以持久化新的對象,這樣很大程度上提升了MySQL 數(shù)據(jù)庫的便捷性。 5.名稱自動更改功能 當(dāng)用戶對數(shù)據(jù)庫對象進行重新命名的時候,,MySQL會自動更改與它關(guān)聯(lián)的名稱信息,方便數(shù)據(jù)庫的擴展和維護。 6.可以建立子數(shù)據(jù)表功能 可以在同一窗口中實現(xiàn)可嵌套式的視圖子表功能,方便開發(fā)者能夠只關(guān)注相關(guān)的數(shù)據(jù)并對其進行操作。 7.方便快捷的數(shù)據(jù)庫連接導(dǎo)出方式 數(shù)據(jù)的導(dǎo)出只需要將MySQL對象加載到JDBC-ODBC橋即可實現(xiàn)。 8.?dāng)?shù)據(jù)訪問頁功能 該功能可使用戶快捷方便地創(chuàng)建數(shù)掂 HTML頁,通過將數(shù)據(jù)庫加載到Intranet Internet連接中,可以高效、快捷地實現(xiàn)信息的共享。 9.集成共享組件 MySQL為了實現(xiàn)多種查詢和管理數(shù)據(jù)則運用Web組件和瀏覽器中的COM控件。 交互性 MySQL支持OLE DB,讓用戶結(jié)合使用與后臺數(shù)據(jù)庫如SQL Server2000的擴展MySQL接口方便。 2.3 MyEclipse 簡介
本系統(tǒng)是跨越平臺限制和跨越瀏覽器限制的充滿動感的網(wǎng)頁。構(gòu)建項目管理系統(tǒng)所用的網(wǎng)頁編輯器為MyEclipse, MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開元產(chǎn)品的支持十分不錯。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。 MySQL 數(shù)據(jù)庫
MySQL數(shù)據(jù)庫是一個開放源代碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),原開發(fā)者為瑞典的MySQL AB公司,該公司于2008年被升陽微系統(tǒng)(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購升陽微系統(tǒng)公司,MySQL成為Oracle旗下產(chǎn)品。MySQL在過去由于性能高、成本低、可靠性好,已經(jīng)成為最流行的開源數(shù)據(jù)庫,因此被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。JAVA 簡介
在我們大學(xué)的課程中了解到,Java其實和c++差不多,在本質(zhì)上都是面向?qū)ο筮M行設(shè)計開發(fā)的語言。在跟c語言相比較之后,你會發(fā)現(xiàn),對于開發(fā)者而言Java是更趨向于簡單易懂的模式。在java中,所有的程序,不論簡單與否,都必須構(gòu)建對象才會有接來下的操作。并且java的源代碼必須先經(jīng)過編譯之后才能傳遞到客戶端去執(zhí)行。Java中的所有變量必須在聲明之后才可以使用。并且java是一種與html無關(guān)的一種格式,java中的代碼是以字節(jié)碼的形式存在的。他們都是獨立的保存在文檔中。在java中始終都是先編譯后運行,java的引用對象必須是在編譯時才會用到。
Java語言的特點:
1.平臺無關(guān)性
平臺無關(guān)性是Java語言的一大特色,它是指編寫好的Java程序無需任何修改就可以在不同的平臺上進行運行。我們知道,.exe文件是windows系統(tǒng)下的可執(zhí)行文件,類似的,.class文件就是JVM(Java虛擬機)上的“可執(zhí)行文件”。Java代碼在第一次編寫的時候所存儲的后綴為.java的文件經(jīng)過編譯后,會生成一個后綴為.class的文件,而該文件則獨立于平臺。怎么說呢?我們的Java程序在平臺上不是直接運行于系統(tǒng)上的,而是通過JVM來運行,不同平臺的JVM是不同的,但是對外都提供相同的接口,這樣.class文件不管在什么平臺下都能和這些“相同的”接口正確“嵌合”。
2.安全性
一是java有一種garbage collection機制,也就是垃圾回收機制,garbage collector會讓你所編寫的程序不容易出現(xiàn)內(nèi)存泄露。如果內(nèi)存泄露是很危險的,在內(nèi)存泄露的時候,黑客有可能會借此對你的電腦進行攻擊。二是java中存在異常類,也就是exception類,它可以在程序出錯的時候讓程序員停止程序的運行,保護程序的安全。三是java里面沒有指針,可以防止程序員access錯誤的內(nèi)存,從而保護程序的安全。
3.面向?qū)ο?/p>
想知道什么是面向?qū)ο蟮脑?,首先需要知道什么是面向過程。面向過程允許在程序中定義函數(shù)或者方法。而面向?qū)ο蟾徊?,允許你將這個“過程”,也就是函數(shù)或者方法以及和它們所關(guān)聯(lián)的數(shù)據(jù)封裝成對象,而這個對象,又通過繼承和派生以及類型限定符,使開發(fā)者無法全部的訪問和修改其包含的整個內(nèi)容。
4.分布式
分布式和多處理器的系統(tǒng)不同,分布式系統(tǒng)中每個節(jié)點運行獨立的操作系統(tǒng)。而多機系統(tǒng)所有的節(jié)點在單一的操作系統(tǒng)的控制下。
5.可移植性
Java的可移植性主要體現(xiàn)在你在一個操作系統(tǒng)上編譯生成的.class文件,可以直接在另外一個操作系統(tǒng)上運行,當(dāng)然這些操作系統(tǒng)上都應(yīng)該安裝JDK,其實準確的說,只需要有JRE就可以。Tomcat簡介
Tomcat 服務(wù)器是一個輕量級應(yīng)用服務(wù)器,它所占用的資源特別少,在用戶和系統(tǒng)所需資源不是很多的情況下經(jīng)常被使用,是開發(fā)和調(diào)試JSP 程序的首選。由于sun公司對tomcat發(fā)展的支持,所以最新的JSP規(guī)范一定會在Tomcat中得以體現(xiàn)。Tomcat的技術(shù)十分先進,而且使用也很方便,性能也是相當(dāng)?shù)姆€(wěn)定,多數(shù)的程序開發(fā)人員都很喜歡使用tomcat。Tomcat雖然是一個小型的服務(wù)器,但它的發(fā)展已經(jīng)相當(dāng)成熟,并且它是免費的,但是它的效率根本不會輸給競爭對手。同樣,我們可以把Tomcat看做是Apache服務(wù)器的一種擴展,所以當(dāng)我們在運行tomcat時,本質(zhì)上它是以一個獨立的Apache進程來運行。 2.7 MVC模式
為了滿足系統(tǒng)對先進性、安全性、跨平臺性、可擴展性、可移植性、分布式等方面的要求,系統(tǒng)總體架構(gòu)設(shè)計采用先進的基于java的B/S的三層體系結(jié)構(gòu)。MVC是 三個單詞的縮寫,分別為: 模型(Model),
視圖
(View)和控制Controller)[9]。 MVC模式的目的就是實現(xiàn)Web系統(tǒng)的職能分工。Model層 實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常可以用JavaBean或EJB來實現(xiàn)。 View層 用于與用戶的交互,通常用JSP來實現(xiàn)。 Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。Web瀏覽技術(shù)已經(jīng)廣泛地應(yīng)用于Internet,并被廣大用戶接受和使用。Web技術(shù)是隨http和html一起出現(xiàn)的。Web服務(wù)器利用http傳遞html文件,Web瀏覽器使用http檢索html文件。Web服務(wù)器一旦檢索到信息,Web瀏覽器就會以靜態(tài)和交互(如文本、圖像)方式顯示各種對象。在電子商務(wù)業(yè)務(wù)進行過程中,需要在各種貿(mào)易角色之間瀏覽和交換各種信息,此時就要使用Web瀏覽技術(shù)。 這種模型使系統(tǒng)結(jié)構(gòu)更加清楚,分工更加明確,有利于整個系統(tǒng)后期的維護和升級。 MVC(Model View Controller)模型(model)-視圖(view)-控制器(controller)MVC本來是存在于Desktop程序中的,M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。使用MVC 的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計數(shù)據(jù)你可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。模型-視圖-控制器(MVC)是Xerox PARC在八十年代為編程語言Smalltalk-80發(fā)明的一種
軟件設(shè)計模式
,至今已被廣泛使用。最近幾年被推薦為Oracle旗下Sun公司Java EE平臺的設(shè)計模式,并且受到越來越多的使用 ColdFusion 和 PHP 的開發(fā)者的歡迎。模型-視圖-控制器模式是一個有用的
工具箱
,它有很多好處,但也有一些缺點。? 三層體系結(jié)構(gòu)由瀏覽器、web服務(wù)器和數(shù)據(jù)庫組成,并結(jié)合HTML語言、jsp、JavaScript腳本語言、Ajax、ODBC等技術(shù),后臺的數(shù)據(jù)庫采用微軟的SQL Server 2005,系統(tǒng)一般的MVC
圖2-7 系統(tǒng)MVC結(jié)構(gòu)圖 如圖1-1可知,用戶界面層是用戶和整個系統(tǒng)的接口,客戶端只需安裝通用的瀏覽器即可建立與本系統(tǒng)的連接。業(yè)務(wù)邏輯層負責(zé)處理用戶輸入的信息,或?qū)⑦@些信息發(fā)送給數(shù)據(jù)庫層進行保存,或調(diào)用數(shù)據(jù)庫層中的函數(shù)再次讀出這些數(shù)據(jù)。數(shù)據(jù)訪問層是整個分層體系的最底層,它主要用來實現(xiàn)與數(shù)據(jù)庫的交互,即完成查詢、插入、刪除和修改數(shù)據(jù)庫中數(shù)據(jù)的功能MVC是一個設(shè)計模式,它強制性的使
應(yīng)用程序
的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。分層概念視圖,模型,控制器。 視圖是用戶看到并與之交互的界面。對老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標(biāo)識語言和Web services。如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件
對象
來處理數(shù)據(jù)庫。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù)。MVC模型還可以實現(xiàn)軟件工程的高內(nèi)聚,低耦合的終極目標(biāo)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。 控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送
HTML表單
時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求自己本身并不參與業(yè)務(wù)邏輯處理,然后再確定用哪個視圖來顯示返回的數(shù)據(jù)。 MVC的優(yōu)點: 低耦合性高重用性和可適用性較低的生命周期成本快速的部署可維護性有利于軟件工程化管理
系統(tǒng)功能分析
我需求分析是理解真實世界中的問題和用戶需求,并能找出能滿足這些需求的解決方案的過程。需求分析的目標(biāo)是在開發(fā)活動開始之前,對問題的解決方法得到更好的認識。由此可見,需求分析在整個項目運行過程中具有舉足輕重的地位。它甚至決定了以后開發(fā)活動的大方向。能否得到一個準確全面的需求分析結(jié)果將直接影響軟件開發(fā)項目的質(zhì)量和成敗。
3.1 可行性研究
對于可行性研究而言,其任務(wù)就是用最低的代價在最短的時間內(nèi)做出一個判斷當(dāng)前系統(tǒng)實現(xiàn)后的價值。為了避免在花費了大量的資源之后才發(fā)現(xiàn)該功能的實現(xiàn)完成不了或者完成了之后也沒有多少實用性的價值。從而造成更多的浪費。在這個過程中,我們進行大量的問卷調(diào)查,網(wǎng)上調(diào)研等,深刻的考慮了這個系統(tǒng)的可行性,以免開發(fā)不必要的功能,對時間和資源等的浪費。
①技術(shù)可行性
由于主要接觸的是Java編程語言,因此對Java語言比較有深刻的了解,尤其是在實習(xí)期間掌握了一些項目經(jīng)驗。在我看來,這次項目管理系統(tǒng)系統(tǒng)于我來說是一項比較大的軟件開發(fā)工作。在這個開發(fā)過程中,我們?yōu)榱讼到y(tǒng)的成功開發(fā)以及功能的全面實現(xiàn),采取嚴謹?shù)拈_發(fā)態(tài)度。同時,我們也需要采取科學(xué)的、工程化的系統(tǒng)開發(fā)方法。并且在這個過程中,我們也會研究一些符合工程化標(biāo)準的開發(fā)方法,以適應(yīng)我們的開發(fā)過程,保證系統(tǒng)功能的實現(xiàn)。研究這些方法意圖是為了我們掌握更好的開發(fā)方法,并且在保證開發(fā)的速度較快的同時保證系統(tǒng)功能的質(zhì)量,而且還可以更多的降低開發(fā)成本,節(jié)約時間。
②操作可行性
現(xiàn)在的生活中計算機已經(jīng)普遍到每個家庭的生活當(dāng)中,因而也就越來越多的人掌握了使用計算機的基本使用方法和技能。而本系統(tǒng)操作簡單,輸入信息頁面大多數(shù)都是下拉框的選擇形式,在某些頁面,信息可以自動生成,無需輸入,時間的輸入也是用的日歷控件,操作簡便,對用戶的要求很低,只需對WINDOWS操作熟練,而且本系統(tǒng)可視性非常好,所以在技術(shù)上不會有很大難度。
③經(jīng)濟可行性
服務(wù)器端的安裝簡潔明了,客戶機無需再裝任何軟件,通過瀏覽器就可以直接訪問,可以直接接入Internet,無論您身在何處,只要您可以訪問Internet都可以使用本系統(tǒng)。本系統(tǒng)對計算機配置的要求不高,企業(yè)機房更換下來的低配置電腦都可以完全滿足需要,所以在經(jīng)濟上具有完全的可行性
④ 法律的可行性
此系統(tǒng)開發(fā)期間,所有工作完全是獨立完成,本人具有開發(fā)此軟件的能力,因此不存在抄襲等盜版侵權(quán)的問題。因此具有法律可行性。
綜上所述,開發(fā)此系統(tǒng)十分有利于我們學(xué)習(xí)或工作當(dāng)中的文件或項目管理,使之能夠更加方便,快捷,準確,并能夠降低成本,這是很多高效或大公司在未來所需要的一款系統(tǒng)。因此,此系統(tǒng)的開發(fā)是完全可行的。
⑤運行環(huán)境:
此項目管理系統(tǒng)的運行環(huán)境包括硬件、操作系統(tǒng)、數(shù)據(jù)庫等軟件:
硬件:對于硬件的要求不是很高,基本的中央處理器(CPU):i5-3230M;
硬 盤:硬盤容量需要80 GB以上硬盤;
內(nèi) 存:8G;
操作系統(tǒng): Windows7,?
關(guān)系數(shù)據(jù)庫: MySQL;
3.2 需求分析
"需求分析",是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么??梢哉f,在
軟件工程
當(dāng)中的“需求分析”就是確定要計算機“做什么”,要達到什么樣的效果??梢哉f需求分析是做系統(tǒng)之前必做的。
而對于項目管理系統(tǒng)開發(fā)來言,我們了解的就是將來管理者會有什么樣的具體要求,同時在管理者運行上也需近乎流暢。在考慮系統(tǒng)的性能的時候,方便用戶的前提下,我們應(yīng)該去實現(xiàn)什么樣的功能。用戶的需求分析:
首先用戶需要在此網(wǎng)站進行在用戶注冊成功登錄后,用戶可以在知道自己原密碼的前提下修改自己的登錄密碼。其次用戶可以添加新項目,同時刪除舊項目或創(chuàng)建錯誤的項目,同時,用戶可以進行項目經(jīng)費,資源,進程,成果進行管理以及對這些操作的查看以便進行確認。系統(tǒng)性能分析:
對數(shù)據(jù)的安全性、完整性要求:我們需要對用戶的信息進行嚴格保密,防止非法用戶對信息進行惡意刪改。以下是系統(tǒng)性能需求: 首要的則是系統(tǒng)的安全性和可靠性;保證安全的同時盡可能完善系統(tǒng)的功能,易于用戶的操作;為了不斷地進步發(fā)展,系統(tǒng)同時需要進行維護和不斷地升級完善功能;由于多用戶同時操作,所以數(shù)據(jù)庫需要滿足多次訪問,保證其效率處于較高的水平。
3.3 系統(tǒng)功能的分析
如果我們的系統(tǒng)已經(jīng)初步成型,我們需要對其進行分析時,則需要通過分析系統(tǒng)的功能和實現(xiàn)去確定系統(tǒng)的即將要達成的目的。因此,我們要收集足夠的信息去驗證我們的分析結(jié)果,在該次畢業(yè)設(shè)計中,我們獲取的信息大多都是從網(wǎng)上,書庫中了解到的。在任何的實踐中獲取的信息其實才是最可靠,最具有說服力的信息,所以,我們?yōu)g覽其它的項目管理系統(tǒng),然后來具體管理以便獲得更可靠的信息。從而得到以下的功能模塊: 從管理員角度看: 用戶登入系統(tǒng)后,可以修改管理員的密碼。同時具有以下功能: 1、管理員可以管理具體項目信息。 2、管理員可以管理項目經(jīng)費信息。 3、管理員可以管理項目資源信息。 4、管理員可以管理項目進度信息。 5、管理員可以管理項目成果信息。 從員工角度看: 員工可以注冊,然后可以進行密碼以及信息的管理。同時也具有以下功能: 員工可以查看具體項目信息員工可以查看具體經(jīng)費信息員工可以查看具體資源信息員工可以查看具體進度信息員工可以具體查看成果信息
3.4 數(shù)據(jù)字典
字典最重要的作用是作為分析階段的工具。日常生活中,任何的字典都是供人查詢未知的詞條或條目,起到答疑解釋的目的。而在系統(tǒng)設(shè)計結(jié)構(gòu)化分析中,數(shù)據(jù)流圖上每個成分的定義和說明則依靠數(shù)據(jù)字典來完成。在數(shù)據(jù)字典中建立的這種嚴密且一致的定義對改進分析員和用戶的通信有很大的幫助。數(shù)據(jù)字典由數(shù)據(jù)項,數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)流,數(shù)據(jù)存儲以及處理過程組成,在系統(tǒng)分析中有很大的作用。 項目管理系統(tǒng)的總體設(shè)計
4.1 系統(tǒng)的功能設(shè)計目標(biāo)
理論系統(tǒng)功能設(shè)計目標(biāo)如下: 實用性強:在設(shè)計系統(tǒng)時,做到最大化的貼近實際,操作簡單,針對各層次的人群都能夠快速學(xué)習(xí)并運用。先進的程序結(jié)構(gòu):使用先進的程序結(jié)構(gòu),利于提高整個系統(tǒng)的效率,而且便于維護及管理,以增強系統(tǒng)的使用周期。
(3) 使用模塊化設(shè)計的方法:首先系統(tǒng)可以具有特別好的可擴充性,便于進一步完善系統(tǒng),其次,對于系統(tǒng)后期的維護也很方便。
(4) 操作簡單,維護方便:系統(tǒng)的維護功能在每個子系統(tǒng)都具備。
4.2 項目管理系統(tǒng)功能模塊
我們詳細考慮了系統(tǒng)所需要的大致功能,并且大體分為以下幾個模塊:
1.登錄界面:這樣的背景下,用于存儲系統(tǒng)信息后,必須先進入到執(zhí)行相應(yīng)的操作管理系統(tǒng),登錄需要用戶通過輸入引進正確的用戶名,密碼,兩者都是必要的,管理員在后臺識別,后臺模塊的入口,背景識別模塊主要用于驗證管理員的身份和密碼。
判斷管理員身份的部分代碼:
public String login(String userName,String userPw,int userType)
{
String result="no";
if(userType==0)//系統(tǒng)管理員登陸
{
String sql="select * from t_admin where userName=? and userPw=?";
Object[] params={userName,userPw};
DB mydb=new DB();
mydb.doPstm(sql, params);
try?
{
ResultSet rs=mydb.getRs();
boolean mark=(rs==null||!rs.next()?false:true);
if(mark==false)
{
result="no";
}
else
{
result="yes";
TAdmin admin=new TAdmin();
admin.setUserId(rs.getInt("userId"));
admin.setUserName(rs.getString("userName"));
admin.setUserPw(rs.getString("userPw"));
WebContext ctx = WebContextFactory.get();?
HttpSession session=ctx.getSession();?
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
}
rs.close();
}?
catch (SQLException e)
{
System.out.println("登錄失??!");
e.printStackTrace();
}
finally
{
mydb.closed();
}
}
return result;
}
2.主頁:進入主頁后可以點擊左側(cè)項目信息管理、資源信息管理、進度信息管理、個人密碼修改等圖標(biāo),進入相應(yīng)的管理頁面
3.項目管理:本模塊實現(xiàn)對企業(yè)項目信息的管理操作,包括企業(yè)項目信息的添加、刪除操作。
點擊企業(yè)項目信息管理菜單,進入企業(yè)項目信息管理頁面,該頁面通過列表列出已添加的企業(yè)項目信息,包括項目名稱、立項時間、負責(zé)人等。點擊列表的刪除按鈕,實現(xiàn)企業(yè)項目信息的刪除操作。
圖4-1 點擊添加按鈕,進入企業(yè)項目信息添加頁面,輸入符合條件的企業(yè)項目信息,完成添加
圖4-2 該模塊的主要功能xiangmu_servlet類 實現(xiàn)的,該類的主要功能是與數(shù)據(jù)庫交互,查詢或保存企業(yè)項目信息,并通過request跳轉(zhuǎn),打開相應(yīng)的jsp頁面。部分代碼是: public void xiangmuDel(HttpServletRequest req,HttpServletResponse res) { String id=req.getParameter("id"); String sql="update t_xiangmu set del='yes' where id=?"; Object[] params={id}; DB mydb=new DB(); mydb.doPstm(sql, params); mydb.closed(); req.setAttribute("message", "操作成功"); req.setAttribute("path", "xiangmu?type=xiangmuMana"); String targetURL = "/common/success.jsp"; dispatch(targetURL, req, res); } public void xiangmuMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String sql="select * from t_xiangmu where del='no'"; req.setAttribute("xiangmuList", getxiangmuList(sql)); req.getRequestDispatcher("admin/xiangmu/xiangmuMana.jsp").forward(req, res); } public void xiangmuSele(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String sql="select * from t_xiangmu where del='no'"; req.setAttribute("xiangmuList", getxiangmuList(sql)); req.getRequestDispatcher("admin/xiangmu/xiangmuSele.jsp").forward(req, res); } private List getxiangmuList(String sql){ List xiangmuList=new ArrayList(); Object[] params={}; DB mydb=new DB(); try { mydb.doPstm(sql, params); ResultSet rs=mydb.getRs(); while(rs.next()) { TXiangmu xiangmu=new TXiangmu(); xiangmu.setId(rs.getInt("id")); xiangmu.setMingcheng(rs.getString("mingcheng")); xiangmu.setShijian(rs.getString("shijian")); xiangmu.setFuzeren(rs.getString("fuzeren")); xiangmuList.add(xiangmu); } rs.close(); } catch(Exception e) { e.printStackTrace(); } mydb.closed(); return xiangmuList; } 4.項目資源管理:本模塊實現(xiàn)對項目資源信息的管理操作,包括項目資源信息的添加、刪除操作。 點擊項目資源信息管理菜單,進入項目資源信息管理頁面,該頁面通過列表列出已添加的項目資源信息,包括項目名稱、資源名稱、添加時間等。
圖4-3
圖4-4 部分代碼:public void ziyuanAdd(HttpServletRequest req,HttpServletResponse res) { String xiangmu_id=req.getParameter("xiangmu_id"); String shijian=req.getParameter("shijian"); String mingcheng=req.getParameter("mingcheng"); String miaoshu=req.getParameter("miaoshu"); String sql="insert into t_ziyuan (xiangmu_id,mingcheng,miaoshu,shijian) values(?,?,?,?)"; Object[] params={xiangmu_id,mingcheng,miaoshu,shijian}; DB mydb=new DB(); mydb.doPstm(sql, params); mydb.closed(); req.setAttribute("message", "操作成功"); req.setAttribute("path", "ziyuan?type=ziyuanMana"); String targetURL = "/common/success.jsp"; dispatch(targetURL, req, res); } public void ziyuanMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String sql="select ta.*,tb.mingcheng xmmc from t_ziyuan ta,t_xiangmu tb " + "where ta.xiangmu_id=tb.id and del='no'"; List ziyuanList=new ArrayList(); Object[] params={}; DB mydb=new DB(); try { mydb.doPstm(sql, params); ResultSet rs=mydb.getRs(); while(rs.next()) { TZiyuan ziyuan=new TZiyuan(); ziyuan.setId(rs.getInt("id")); ziyuan.setXmmc(rs.getString("xmmc")); ziyuan.setShijian(rs.getString("shijian")); ziyuan.setMingcheng(rs.getString("mingcheng")); ziyuan.setMiaoshu(rs.getString("miaoshu")); ziyuanList.add(ziyuan); } rs.close(); } 6.項目經(jīng)費管理:本模塊實現(xiàn)對項目經(jīng)費信息的管理操作,包括項目經(jīng)費信息的添加、刪除操作。點擊項目經(jīng)費信息管理菜單,進入項目經(jīng)費信息管理頁面,該頁面通過列表列出已添加的項目經(jīng)費信息,包括項目名稱、經(jīng)費金額、追加時間等。?
圖4-5
圖4-6 部分代碼:public void jingfeiAdd(HttpServletRequest req,HttpServletResponse res) { String xiangmu_id=req.getParameter("xiangmu_id"); String shijian=req.getParameter("shijian"); String jine=req.getParameter("jine"); String sql="insert into t_jingfei (xiangmu_id,jine,shijian) values(?,?,?)"; Object[] params={xiangmu_id,jine,shijian}; DB mydb=new DB(); mydb.doPstm(sql, params); mydb.closed(); req.setAttribute("message", "操作成功"); req.setAttribute("path", "jingfei?type=jingfeiMana"); String targetURL = "/common/success.jsp"; dispatch(targetURL, req, res); } public void jingfeiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String sql="select ta.*,tb.mingcheng from t_jingfei ta,t_xiangmu tb " + "where ta.xiangmu_id=tb.id and del='no'"; List jingfeiList=new ArrayList(); Object[] params={}; DB mydb=new DB(); try { mydb.doPstm(sql, params); ResultSet rs=mydb.getRs(); while(rs.next()) { TJingfei jingfei=new TJingfei(); jingfei.setId(rs.getInt("id")); jingfei.setXmmc(rs.getString("mingcheng")); jingfei.setShijian(rs.getString("shijian")); jingfei.setJine(rs.getString("jine")); jingfeiList.add(jingfei); } rs.close(); } 7.項目進度管理:本模塊實現(xiàn)對項目進度信息的管理操作,包括項目進度信息的添加、刪除操作。點擊項目進度信息管理菜單,進入項目進度信息管理頁面,該頁面通過列表列出已添加的項目進度信息,包括進度描述、添加時間、百分比等。
圖4-7
圖4-8 部分代碼:public void jinduAdd(HttpServletRequest req,HttpServletResponse res) { String xiangmu_id=req.getParameter("xiangmu_id"); String shijian=req.getParameter("shijian"); String miaoshu=req.getParameter("miaoshu"); String baifenbi=req.getParameter("baifenbi"); String sql="insert into t_jindu (xiangmu_id,shijian,miaoshu,baifenbi) values(?,?,?,?)"; Object[] params={xiangmu_id,shijian,miaoshu,baifenbi}; DB mydb=new DB(); mydb.doPstm(sql, params); mydb.closed(); req.setAttribute("message", "操作成功"); req.setAttribute("path", "jindu?type=jinduMana"); String targetURL = "/common/success.jsp"; dispatch(targetURL, req, res); } public void jinduMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException { String sql="select ta.*,tb.mingcheng from t_jindu ta,t_xiangmu tb " + "where ta.xiangmu_id=tb.id and del='no'"; List jinduList=new ArrayList(); Object[] params={}; DB mydb=new DB(); try { mydb.doPstm(sql, params); ResultSet rs=mydb.getRs(); while(rs.next()) { TJindu jindu=new TJindu(); jindu.setId(rs.getInt("id")); jindu.setXmmc(rs.getString("mingcheng")); jindu.setShijian(rs.getString("shijian")); jindu.setMiaoshu(rs.getString("miaoshu")); jindu.setBaifenbi(rs.getString("baifenbi")); jinduList.add(jindu); } rs.close(); } 8.項目成果管理:本模塊實現(xiàn)對項目成果信息的管理操作,包括項目成果信息的添加、刪除操作。點擊項目成果信息管理菜單,進入項目成果信息管理頁面,該頁面通過列表列出已添加的項目成果信息,包括進度描述、添加時間、百分比等。
圖4-9
圖4-9 9.退出后臺管理:后臺管理模塊的出現(xiàn)主要用于來自后臺系統(tǒng)管理。當(dāng)從后臺管理系統(tǒng)出來,然后單擊[退出]按鈕,雖然它仍然在后臺,但不能做任何事情;點擊其他工作的模塊,將打開登錄窗口的背景下,要求用戶介紹了正確的用戶名,密碼。 4.3 項目管理的體系結(jié)構(gòu) 主要結(jié)構(gòu):
圖4-10 即:JSP技術(shù) + JavaBeans + MySQL 數(shù)據(jù)庫? 4.4 系統(tǒng)總體結(jié)構(gòu)圖
圖 4-11 系統(tǒng)總體結(jié)構(gòu)圖 數(shù)據(jù)流圖: 數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。在結(jié)構(gòu)化開發(fā)方法中,數(shù)據(jù)流圖是需求分析階段產(chǎn)生的結(jié)果。 數(shù)據(jù)流圖英文縮寫DFD(Data Flow Diagram)它是描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換。 數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。 數(shù)據(jù)流程圖包括: a.指明數(shù)據(jù)存在的數(shù)據(jù)符號,這些數(shù)據(jù)符號也可指明該數(shù)據(jù)所使用的媒體; b.指明對數(shù)據(jù)執(zhí)行的處理的處理符號,這些符號也可指明該處理所用到的機器功能; c.指明幾個處理和(或)數(shù)據(jù)媒體之間的數(shù)據(jù)流的流線符號; d.便于讀、寫數(shù)據(jù)流程圖的特殊符號。 在處理符號的前后都應(yīng)是數(shù)據(jù)符號。數(shù)據(jù)流程圖以數(shù)據(jù)符號開始和結(jié)束(除9.4規(guī)定的特殊符號外)
圖4-12系統(tǒng)流程圖 4.5項目管理系統(tǒng)用例圖
圖4-13 管理員用例圖
圖4-14 員工用例圖 數(shù)據(jù)庫設(shè)計 5.1 數(shù)據(jù)庫系統(tǒng)概述 數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫”。作為網(wǎng)絡(luò)的一個重要應(yīng)用,數(shù)據(jù)庫在網(wǎng)站建設(shè)中發(fā)揮著重要的作用,與普通網(wǎng)站相對而言,具有數(shù)據(jù)庫功能的網(wǎng)站網(wǎng)頁我們通常稱為動態(tài)頁面,也就是說頁面不是一層不變的,頁面上內(nèi)容(或部分內(nèi)容)是動態(tài)生成的,它可以根據(jù)數(shù)據(jù)庫中相應(yīng)部分內(nèi)容的調(diào)整而變化,使網(wǎng)站內(nèi)容更靈活,維護更方便,更新更便捷。SQL Server數(shù)據(jù)庫作為微軟推出的以標(biāo)準JET為引擎的桌面型數(shù)據(jù)庫系統(tǒng),由于具有操作簡單、界面友好等特點,具有較大的用戶群體。 本系統(tǒng)數(shù)據(jù)庫采用SQL Server數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為db_yyw,下面分別給出數(shù)據(jù)表概要說明、主要數(shù)據(jù)表的結(jié)構(gòu)。 5.2 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 系統(tǒng)數(shù)據(jù)庫db_xmgl中含有7張數(shù)據(jù)表,項目信息表t_xiangmu、資源信息表t_ziyuan、經(jīng)費信息表t_jingfen、進度信息表t_jindu、成果信息表t_chengguo、管理員信息表t_admin、員工信息表t_admin。 1.項目結(jié)構(gòu)表:項目信息表主要用于保存項目的基本信息,如項目名稱、立項時間、項目負責(zé)人等 表5-1項目結(jié)構(gòu)表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號mingchengint4否項目名稱shijianint4否立項時間fuzerenvarchar50否項目負責(zé)人 2.資源信息表:資源信息表主要用于保存項目涉及到的資源信息,如資源名稱、描述、添加時間等 表5-2項目信息表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號xiangmu_idint4否項目信息mingchengvarchar50否資源名稱miaoshuvarchar50否資源描述shijianvarchar50否添加時間 3.經(jīng)費信息表:經(jīng)費信息表主要用于保存項目經(jīng)費信息,如經(jīng)費金額、追加時間等 表5-3經(jīng)費信息表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號Xiangmu_idint4否項目信息jinevarchar50否經(jīng)費金額jinevarchar50否追加時間 4.進度信息表:進度信息表主要用于保存項目進度信息,如時間、進度描述、百分比等 表5-4進度信息表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號Xiangmu_idint4否項目信息shijianvarchar50否時間miaoshuvarchar50否進度描述baifenbivarchar50否百分比 5.成果信息表:成果信息表主要用于項目產(chǎn)生的成果信息,如成果描述、時間、成果相附件等 表5-5成果信息表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號xiangmu_idint4否項目成果miaoshuvarchar50否成果描述shijianvarchar50否時間fujianvarchar50否附件路徑fujianYuanshimingvarchar50否附件原始名 6.管理員信息表:管理員信息表主要用于保存管理員的基本信息 表5-6管理員信息表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號userNamevarchar50否登錄賬號userPwvarchar50否登錄密碼 7.員工信息表:員工信息表主要用于保存員工的基本信息 表5-7員工信息表 字段名數(shù)據(jù)類型長度是否主鍵描述idint4是自動編號namevarchar50否員工姓名sexvarchar50否員工性別telvarchar50否員工電話userNvarchar50否員工登錄賬號userPvarchar50否員工登錄密碼 系統(tǒng)實現(xiàn) 6.1程序說明 本系統(tǒng)都是以面向?qū)ο蟮姆椒ㄟM行設(shè)計實現(xiàn),我們以Java 語言為基礎(chǔ)進行開發(fā),在實現(xiàn)此系統(tǒng)功能時,我們是采用JSP技術(shù),JavaBeans組件和MySQL數(shù)據(jù)庫進行開發(fā)實現(xiàn)的。 6.2 網(wǎng)頁主頁面模塊??
6-2-1 網(wǎng)頁主頁模塊 系統(tǒng)測試 7.1 軟件的安裝與配置 軟件安裝的環(huán)境:操作系統(tǒng)Windows 7 MySQL JDK安裝: 在我們大學(xué)的課程以及實踐中,我們有很多次JDK安裝的經(jīng)驗,JDK的安裝也特別簡單,易于操作。 JDK的配置: 設(shè)置JAVA_HOME環(huán)境變量:JDK 安裝目錄 例:C:\j2sdk1.4; 設(shè)置CLASSPATH環(huán)境變量:JDK安裝目錄\lib\tools.jar 例: C:\j2sdk1.4\lib\tools.jar;. 設(shè)置PATH環(huán)境變量:JDK 安裝目錄\bin;例:C:\j2sdk1.4\bin; 服務(wù)器的安裝:Tomcat 5.0 設(shè)置TOMCAT_HOME環(huán)境變量:Tomcat安裝目錄 例:C:\Tomcat 5.0; (2)Tomcat5.0 安裝時注意在選擇Java虛擬機路徑是切記要選擇安裝的JSDK的目錄,之后再進行安裝。 在安裝完畢后,我們隨后就可以運行TOMCAT,可以在瀏覽器中輸入
http://localhost:8080,成功的TOMCAT的歡迎頁面
,。
7.2 軟件調(diào)試
人無完人,我們在軟件開發(fā)的過程中難免會發(fā)生一些錯誤,而軟件調(diào)試則是為了發(fā)現(xiàn)程序和系統(tǒng)中的出現(xiàn)的問題,并對其及時的加以修改和修正,得以更好的完善系統(tǒng),更準確的貼近系統(tǒng)開發(fā)的預(yù)期功能。 我們在項目管理系統(tǒng)中所采用的調(diào)試方法包括以下幾種: 程序調(diào)試
程序調(diào)試的方法主要包含語法調(diào)試和邏輯檢查兩種,在測試過程中,我們不能單單運用正常的數(shù)據(jù)資料來進行調(diào)試,這樣的調(diào)試并不能保證系統(tǒng)的全面性,我們選用的資料必須全面,從各種方面和角度對系統(tǒng)進行核查調(diào)試,這樣對系統(tǒng)的功能完善具有很準確的判斷。 ①首先我們會用正常的數(shù)據(jù)資料來對系統(tǒng)進行調(diào)試。正確的資料是系統(tǒng)完成功能的首要標(biāo)準,檢查系統(tǒng)是否實現(xiàn)了基本功能,正常的數(shù)據(jù)資料在系統(tǒng)調(diào)試中的地位相當(dāng)重要。 ②其次,我們還需要運用有異常的數(shù)據(jù)資料對系統(tǒng)進行調(diào)試,檢查系統(tǒng)的容錯性,防止系統(tǒng)在遇到異常時無法處理而崩潰,影響用戶的使用及體驗,此項調(diào)試也十分重要。 ③最后我們也會用有明顯錯誤的數(shù)據(jù)資料對系統(tǒng)進行核查調(diào)試。在系統(tǒng)接收到錯誤的資料信息時,是否會返回一定的信息,而不是一味地不作回應(yīng)。錯誤的資料對檢驗系統(tǒng)功能也是必不可少。 7.3 軟件測試
軟件測試對于系統(tǒng)開發(fā)而言是十分重要的一部分,它保證了系統(tǒng)的質(zhì)量與可靠性。我們在進行軟件測試時,最重要的目的是檢查是否能夠?qū)崿F(xiàn)該系統(tǒng)的各項功能,是否能夠滿足消費者的各項需求。 軟件測試是對整個系統(tǒng)開發(fā)過程的最終審查,若錯誤沒被及時發(fā)現(xiàn),則會給后續(xù)開發(fā)工作造成很嚴重的后果。 黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進行測試。 黑盒測試是以用戶的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出發(fā)進行測試的。很明顯,如果外部特性本身設(shè)計有問題或規(guī)格說明的規(guī)定有誤,用黑盒測試方法是發(fā)現(xiàn)不了的。 白盒測試,又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動測試或基于代碼的測試。白盒測試是一種測試用例設(shè)計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運作的。"白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。"白盒"法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨立路徑數(shù)是天文數(shù)字。 采用什么方法對軟件進行測試呢?常用的軟件測試方法有兩大類:靜態(tài)測試方法和動態(tài)測試方法。其中軟件的靜態(tài)測試不要求在計算機上實際執(zhí)行所測程序,主要以一些人工的模擬技術(shù)對軟件進行分析和測試;而軟件的動態(tài)測試是通過輸入一組預(yù)先按照一定的測試準則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達到發(fā)現(xiàn)程序錯誤的過程。在動態(tài)分析技術(shù)中,最重要的技術(shù)是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬于動態(tài)分析方法。 對于此系統(tǒng),采取黑盒測試與白盒測試相聯(lián)系,其中黑盒測試為主,我們將白盒測試則應(yīng)用于主要的功能模塊。 測試用例: 1.登錄的測試用例 功能A描述登錄界面用例目的測試管理員能否正常登錄前提條件操作系統(tǒng)正常運行,以及各硬件配置恰當(dāng)輸入/動作期望的輸出/相應(yīng)實際情況輸入:管理員ID:a, 密碼:1登錄成功與期望相吻合輸入:管理員ID:a, 密碼:1111密碼錯誤吻合 2用戶查詢的測試用例 功能B描述查詢界面用例目的測試能否正常查詢前提條件操作系統(tǒng)正常運行,以及各硬件配置恰當(dāng)查詢/動作期望的輸出/相應(yīng)實際情況查詢:項目,項目名稱:項目A,立項日期:20170511,負責(zé)人:許楠楠查詢成功吻合查詢:項目,項目名稱:項目B,立項日期:20170606,負責(zé)人:某人查詢成功吻合查詢:項目,項目名稱:項目C ,立項日期:20170606,負責(zé)人:負責(zé)人不顯示吻合查詢:項目,項目名稱:項目D,立項日期: ,負責(zé)人:某某人立項日期不顯示吻合 測試結(jié)果: ★可能會有部分的中文數(shù)據(jù)從數(shù)據(jù)庫中取出后,出現(xiàn)一些亂碼的現(xiàn)象。 ★系統(tǒng)的參數(shù)時而會出現(xiàn)錯誤,無法再進行傳遞 ★系統(tǒng)在遇到大量用戶同時進行訪問時,數(shù)據(jù)庫的效率可能沒有想象中那么高。會造成部分用戶訪問失敗,影響用戶的體驗以及系統(tǒng)的運行效率。 主要的解決方法: ☆我使用一部分代碼方法來解決亂碼問題: 其次我會對各個模塊的參數(shù)模式進行統(tǒng)一規(guī)劃。 這個系統(tǒng)是以中小型為根本,在使用JDBC連接數(shù)據(jù)庫時,這些因素會造成一些問題。 結(jié)束語
在畢業(yè)設(shè)計和開發(fā)期間,經(jīng)過老師的指導(dǎo)和三個多月的認真學(xué)習(xí),同時翻閱了大量的資料,終于完成了項目管理系統(tǒng)的開發(fā)設(shè)計。其功能基本符合用戶需求,能夠完成課題的提交。我感覺自己從理論到實踐都有了長足的進步和很大的提高,使我在數(shù)據(jù)庫設(shè)計方面、JSP編程技術(shù)方面有了長足的進步,對項目管理系統(tǒng)開發(fā)過程、步驟有了比較深刻的認識。 通過畢業(yè)設(shè)計,我還明白了一點,合作是至關(guān)重要的。雖然我是自己一個人為一組,但是在設(shè)計過程中也經(jīng)常和同學(xué)們商量,相互借鑒。一個完整軟件程序需要若干個人的通力合作。在項目管理系統(tǒng)開發(fā)過程中,我加強和同學(xué)們的溝通和交流,使得對每一個問題的解決獲得較優(yōu)的方案,從而保證項目管理系統(tǒng)的合理性、完整性,為該平臺的進一步完善和擴充打下了良好的基礎(chǔ)。 撰寫畢業(yè)論文期間,我深刻體會到,實踐到理論的重要性。在實踐到理論的轉(zhuǎn)化中,我將自己的工作過程清晰的展現(xiàn)在面前,而且增強了自己查閱資料的能力,獲得了一些必要的知識。 總之,在完成該系統(tǒng)的過程中學(xué)到很多在大學(xué)的教室學(xué)不到的東西,不僅僅是專業(yè)知識增加了學(xué)到了很多,也鍛煉了我的意志,讓我更堅強。 致謝?
本次畢業(yè)設(shè)計過程中,在本次畢業(yè)設(shè)計中,我從指導(dǎo)老師老師的身上學(xué)到了很多東西。XX老師認真負責(zé)的工作態(tài)度、嚴謹?shù)闹螌W(xué)精神都使我受益匪淺。他無論在理論上還是在實踐中,都給予我很大的幫助,使我得到了不少的提高,這對于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,感謝他耐心的指導(dǎo)。還有校內(nèi)老師XX老師,面對我的課題與論文眾多的問題,XX老師耐心指導(dǎo)我進行修正,才使得我不斷發(fā)現(xiàn)問題,不斷的磨練自己。 最后祝愿老師工作順利,身體健康。再次謝謝老師。 參考文獻
[1] 張志豪.基于Java EE的里程碑科技項目管理系統(tǒng)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),2014. [2] 康蔣偉,周愛玲,邱建林.高??蒲许椖抗芾硐到y(tǒng)的設(shè)計與實現(xiàn)[J].科技創(chuàng)新與應(yīng)用,2016年36期 [3] 劉亞賓,精通Eclipse--JAVA技術(shù)大系,電子工業(yè)出版社,2005. [4] 于萬波,網(wǎng)站開發(fā)與應(yīng)用案例教程,清華大學(xué)出版社,2009. [5] 楊學(xué)瑜,高立軍,軟件開發(fā)過程與項目管理,電子工業(yè)出版社,2008. [6] 張潔才,Java web應(yīng)用開發(fā)教程,科學(xué)出版社,2005. [7] 戴維爾,JavaScript程序員教程,電子工業(yè)出版社,2010. [8] 黎連業(yè)、王華、李淑春,軟件測試與測試技術(shù),清華大學(xué)出版社,2009. [9] 黃梯云著.管理信息系統(tǒng).北京.電子工業(yè)出版社.2006 . [10].James D. McCaffrey等著.NET軟件測試自動化之道[M]. 北京.電子工業(yè)出版社.2007. [11].甘仞初著.信息系統(tǒng)開發(fā).北京.經(jīng)濟科學(xué)出版社.2007. [12].馬赫著. Dreamweaver MX 2004 網(wǎng)頁設(shè)計經(jīng)典108例.中國青年出版社.2005. [13].唐友國 湛洪波著.JSP網(wǎng)站開發(fā)詳解.電子工業(yè)出版社2008年10月. [14].衛(wèi)紅春等著.信息系統(tǒng)分析與設(shè)計[M].北京.清華大學(xué)出版社.2009. [15].張大方 李瑋等著.軟件測試技術(shù)與管理[M].湖南.湖南大學(xué)出版社,2007. [16]. (美) H.M.Deitel,P.Jdeitel著.Java程序設(shè)計教程(第五版). 清華大學(xué)出版社.2004. [17]. (美) Elliotte Rusty Harold著.Java Network Programming.東南大學(xué)出版社 .2005. [18] 孫衛(wèi)琴等著.精通struts:基于MVC的Java Web設(shè)計與開發(fā). 電子工業(yè)出版社.2005. [19] 張文靜 林琪著.JSP程序設(shè)計.人民郵電出版社.2005. [20] 孫衛(wèi)琴 李洪成著.Tomcat與Java Web開發(fā)技術(shù)詳解. 電子工業(yè)出版社.2005. [21](美)John J.Patrick著.SQL基礎(chǔ)(第二版).清華大學(xué)出版社.2004. [22](美)David flanagan著.Java技術(shù)手冊(第五版).東南大學(xué)出版社.2006. [23]黃裴、徐汀榮,電子商務(wù)原理與技術(shù)(第二版),科學(xué)出版社,2006年10月 附錄:外文翻譯:
1.英文原文
Application Specification of J2EE This text analysis the mechanism of Hibernate and Struts, put forward 1 kind EE according to the J2 of the Hibernate and the Struts application development?
http://
strategy.In
?this kind of strategy, the model layer use a Hibernate realization and see diagram and controller to then use a Struts frame a realization.So can consumedly lower the development efficiency that the Ou of code match sex and exaltation system. The key word Hibernate, Struts, the MVC, hold out for long time a layer one preface along with the Java technique of gradual mature and perfect, Be establishment business enterprise class application of standard terrace, the J2EE terrace got substantial of development.Several technique asked for help from to include in the J2 EE norm:Enterprise JavaBean(EJB), Java Servlets(Servlet), Java Server Pages(JSP), Java Message Service(JMS).etc., development many application system.But, also appeared some problem in the tradition J2 the EE the application of the development the process: the antinomy of of data model and logic model.Currently the database of usage basically and all is relation type database, but the Java be essentially a kind of the language which face to object, object at saving with read usage SQL and JDBC carry on a database operation and lowered plait distance of efficiency and system of can maintenance; tradition of J2 EE application much the adoption is according to the EJB heavy weight frame, this kind of frame suitable for develop a large business enterprise application, but usage the EJB container carry on development and adjust to try to need to be waste a great deal of time.For lowering the Out of code to match sex, exaltation system of development efficiency, this text put forward 1 kind EE according to the J2EE of the Struts frame and the Hibernate frame application development strategy. 2 Open Source Technology of J2EE Datas' holding out for long time layer and Hibernate is one piece according to hold out for long time layer frame, is a kind of realization object and relation of the tool which reflect to shoot(O/R Mapping), it carried on the object of the lightweight to pack to the JDBC and make procedure member can usage object plait distance thought to operation database.It not only provided to shoot from Java to reflect of data form, but also provided a data a search and instauration mechanism.Opposite in usage JDBC and SQL to operation database, use a Hibernate ability consumedly of exaltation realization of efficiency.The Hibernate frame use allocation document of the form come to the reflect of the definition Java object and data form to shoot relation, in the meantime at more deep of level of data form of relation explanation for the relations such as inherit of and containment etc. of Java object.Pass the usage HQL language sentence complications of relation the calculate way use the way of object description, to a large extent simplification logarithms according to of search, speed development of efficiency.Have in the Hibernate a simple but keep the API of view, used for to the database mean of object performance search.Want to establish or the modification be these objects, need in the procedure carry on with them to hand over with each other, then tell Hibernate to keep.So, a great deal of pack hold out for long time turn operation of business logic no longer demand write a trivial JDBC language sentence, make data last long thus the layer got biggest of simplification.? Use the Struts realization MVC structure MVC(Model-View-Controller) is put forward by the Trygve Reenskaug, first drive application in the environment SmallTalk-80, is many to hand over with each other with interface system of constitute foundation.According to the need of variable of the interface design, MVC hand over with each other constitute of system to resolve into model and see diagram, controller three part. Model(Model) is software processing problem logic at independence in outside manifestation under contents and form circumstance of inside abstract, packed the core data, logic of problem and function of calculation relation, independence in concrete of interface expression and I/O operation.See diagram(View) mean information and particular form demonstration of model data and logic relation and appearance to the customer.It acquire a manifestation information from the model, there can be many for homology of information dissimilarity of manifestation form or see diagram.The controller(Controller) is a processing the customer hand over with software with each other operation of, its job is control provide model in any variety of dissemination, insure a customer interface among the model of rightness should contact;It accept a customer of importation, give° the importation feedback model, then realization compute model control, is make model and see diagram to moderate work of parts.Usually 1 see a diagram rightness should a controller.Model, see separate of diagram and controller, make a model be able to have many manifestation to see diagram.If the customer pass a certain see the controller of diagram change the data of model, all other dependence in these see of data diagram all should reflection arrive these variety.When therefore and regardless occurrence what data variety, controller all would variety notice allly see diagram, cause manifestation of renewal.This is actually a kind of variety of model-dissemination mechanism.? The Struts frame is to be the item of Apache Jakarta to constitute part to publish luck to do at the earliest stage, it inheritted MVC of each item characteristic, and did according to the characteristics of J2 EE correspond of variety with expand.The Struts frame was good to combine Jsp, Java Servlet, Java Bean, Taglib etc.?
http://
technique.In
?the Struts, what to undertake the controller role in the MVC be an ActionServlet.The ActionServlet is an in general use control module.This control module provided a processing all HTTP claim which send out Struts of entrance point.Its interception with distribute these claim to arrive correspond of action type.(these action all of type is Action son type)Moreover the control module is also responsible for using to correspond of claim the parameter fill Action Form(FromBean), and pass action type(ActionBean).Action type the business logic of the interview core, then interview Java Bean or adjust to use EJB.End action type control the power pass follow-up of JSP document, from JSP document born see diagram.All these control logic make use of Struts-config.xml the document come to allocation.See diagram in the Struts frame main from JSP born page completion, the Struts provide abundant of JSP label database, this is advantageous to separating performance logic and procedure logic.The model is with 1 or the form existence of several Java?
http://
Bean.In
?the Struts, main existence three kinds of Bean, respectively BE:Action, ActionForm, EJB perhaps Java Bean. The Struts frame have no concrete definition model layer of realization, in actually the development, model layer usually is close with business logic connect with each other, and want to carry on operation to the first floor data.The underneath's introduction is a kind of development strategy, lead the Hibernate into the model layer of Struts frame, usage it to carry on a data to pack with reflect to shoot, provide hold out for long time turn of support. 4 usage Hibernate and the Struts development J2 EE application 4.1 system structure diagram 3 manifestation according to Hibernate and Struts development strategy of system structure diagram.? Development practice underneath combine a development practice, with in the J2 the EE the application very widespread customer register process for example, elucidation above-mentioned system structure is how concrete usage.The process of register is very clear:Customer from register page login.jsp importation register information, system to register the information carry on verification, if exactitude success register, otherwise hint correspond mistake information. In the development process, the usage Eclipse be used as development environment and added to carry to provide to the Struts and the Hibernate in the meantime better control and support of three square plug-in MyEclipse, Web server usage Tomcat, the database chose to use Mysql. Carry on an allocation to the Hibernate first, need to the system auto the born hibernate.cfg.xml carry on modification, allocation good database conjunction of various parameter and definition the data reflect to shoot a document.Because the Hibernate take of conjunction pond main used for test, the function isn't very good, can pass JNDI will it modification is usage Tomcat of conjunction pond. 2.中文翻譯
1.?引言 本文分析了Hibernate和Struts的機制,提出了一種基于Hibernate和Struts的J2EE應(yīng)用開發(fā)策略。在這種策略中,模型層用Hibernate實現(xiàn),視圖和控制器則用Struts框架實現(xiàn)。這樣可大大降低代碼的耦合性以及提高系統(tǒng)的開發(fā)效率。 關(guān)鍵字 Hibernate,Struts,MVC,持久層。? 隨著Java技術(shù)的逐漸成熟與完善,作為建立企業(yè)級應(yīng)用的標(biāo)準平臺,J2EE平臺得到了長足的發(fā)展。借助于J2EE規(guī)范中包含的多項技術(shù):EnterpriseJavaBean(EJB)、Java Servlets(Servlet)、Java Server Pages(JSP)、Java Message Service(JMS)等,開發(fā)出了許多應(yīng)用系統(tǒng)。但是,在傳統(tǒng)J2EE應(yīng)用的開發(fā)過程中也出現(xiàn)了一些問題:1)數(shù)據(jù)模型和邏輯模型之間的矛盾。目前使用的數(shù)據(jù)庫基本上都是關(guān)系型數(shù)據(jù)庫,而Java本質(zhì)上是一種面向?qū)ο蟮恼Z言,對象在存儲和讀取時使用SQL和JDBC進行數(shù)據(jù)庫操作,降低了編程的效率以及系統(tǒng)的可維護性;2)傳統(tǒng)的J2EE應(yīng)用多采用基于EJB的重量級框架,這種框架適合于開發(fā)大型企業(yè)應(yīng)用,但是使用EJB容器進行開發(fā)和調(diào)試需要耗費大量時間。為了降低代碼的耦合性,提高系統(tǒng)的開發(fā)效率,本文提出了一種基于Struts框架和Hibernate框架的J2EE應(yīng)用開發(fā)策略。 2. J2EE開源技術(shù)介紹 數(shù)據(jù)持久層及Hibernate,Hibernate是一個數(shù)據(jù)持久層框架,是一種實現(xiàn)對象和關(guān)系之間映射(O/R Mapping)的工具,它對JDBC進行了輕量級的對象封裝,使程序員可以使用對象編程思想來操作數(shù)據(jù)庫。它不僅提供了從Java類到數(shù)據(jù)表的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機制。相對于使用JDBC和SQL來操作數(shù)據(jù)庫,使用Hibernate能大大的提高實現(xiàn)的效率。Hibernate框架用配置文件的形式來定義Java對象和數(shù)據(jù)表之間的映射關(guān)系,同時在更深的層面將數(shù)據(jù)表之間的關(guān)系解釋為Java對象之間的繼承及包含等關(guān)系。通過使用HQL語句將復(fù)雜的關(guān)系算法用對象的方式描述,在很大程度上簡化了對數(shù)據(jù)的查詢,加快了開發(fā)的效率。在Hibernate中有一個簡單而直觀的API,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢。要創(chuàng)建或修改這些對象,只需在程序中與它們進行交互,然后告訴Hibernate保存即可。這樣,大量封裝持久化操作的業(yè)務(wù)邏輯不再需要編寫煩瑣的JDBC語句,從而使數(shù)據(jù)持久層得到了極大的簡化。? 用Struts實現(xiàn)MVC架構(gòu) MVC(Model-View-Controller)由Trygve Reenskaug提出,首先被應(yīng)用在SmallTalk-80環(huán)境中,是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ)。根據(jù)界面設(shè)計可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器三部分。 模型(Model)是軟件所處理問題邏輯在獨立于外在顯示內(nèi)容和形式情況下的內(nèi)在抽象,封裝了問題的核心數(shù)據(jù)、邏輯和功能的計算關(guān)系,獨立于具體的界面表達和I/O操作。視圖(View)把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖??刂破鳎–ontroller)是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進而實現(xiàn)對模型的計算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個視圖對應(yīng)一個控制器。模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導(dǎo)致顯示的更新。這實際上是一種模型的變化-傳播機制。? Struts框架最早是作為Apache Jakarta項目的組成部分問世運做,它繼承了MVC的各項特性,并根據(jù)J2EE的特點,做了相應(yīng)的變化與擴展。Struts框架很好的結(jié)合了Jsp,Java Servlet,Java Bean,Taglib等技術(shù)。在Struts中,承擔(dān)MVC中控制器角色的是ActionServlet。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發(fā)送到Struts的HTTP請求的入口點。它截取和 分發(fā)這些請求到相應(yīng)的動作類(這些動作類都是Action類的子類)。另外控制組件也負責(zé)用相應(yīng)的請求參數(shù)填充Action Form(FromBean),并傳給動作類(ActionBean)。動作類訪問核心商業(yè)邏輯,即訪問Java Bean或調(diào)用EJB。最后動作類把控制權(quán)傳給后續(xù)的JSP文件,由JSP文件生成視圖。所有這些控制邏輯利用Struts-config.xml文件來配置。在Struts框架中,視圖主要由JSP生成頁面完成,Struts提供豐富的JSP標(biāo)簽庫,這有利于分開表現(xiàn)邏輯和程序邏輯。模型以一個或多個Java Bean的形式存在。在Struts中,主要存在三種Bean,分別是:Action,ActionForm,EJB或者Java Bean。 Struts框架沒有具體定義模型層的實現(xiàn),在實際開發(fā)中,模型層通常是和業(yè)務(wù)邏輯緊密相連的,并且要對底層數(shù)據(jù)進行操作。下面介紹一種開發(fā)策略,將Hibernate引入到Struts框架的模型層中,使用它來進行數(shù)據(jù)封裝和映射,提供持久化的支持。? 下面結(jié)合開發(fā)實踐,以在J2EE應(yīng)用中非常普遍的用戶登錄過程為例,來說明上述體系結(jié)構(gòu)是如何具體運用的。登錄的流程非常清晰:用戶從登錄頁面login.jsp輸入登錄信息,系統(tǒng)對登錄信息進行驗證,如果正確則成功登錄,否則提示相應(yīng)錯誤信息。 在開發(fā)過程中,使用Eclipse做為開發(fā)環(huán)境,同時加載了對Struts及Hibernate提供更好的控制和支持的第三方插件MyEclipse,Web服務(wù)器使用Tomcat,數(shù)據(jù)庫選用了Mysql。 首先對Hibernate進行配置,只需要對系統(tǒng)自動生成的hibernate.cfg.xml進行修改,配置好數(shù)據(jù)庫連接的各種參數(shù)以及定義數(shù)據(jù)映射文件。由于Hibernate所帶的連接池主要用于測試,性能不是很好,可以通過JNDI將其修改為使用Tomcat的連接池。