版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 1 緒 論1</b></p><p> 1.1 選題的目的及意義1</p><p> 1.2 系統(tǒng)開發(fā)的關(guān)鍵技術(shù)1</p><p> 1.3 本課題研究的主要內(nèi)容以及展望1</p><p>
2、 2 系統(tǒng)開發(fā)技術(shù)3</p><p> 2.1語言可行性的分析3</p><p> 2.1.1 SERVLET技術(shù)簡介3</p><p> 2.1.2 JSP及其特點4</p><p> 2.2 框架的可行性4</p><p> 2.2.1 MVC(Model View Controller)分層
3、結(jié)構(gòu)4</p><p> 2.2.2 基于MVC結(jié)構(gòu) web系統(tǒng)設(shè)計5</p><p> 2.3 系統(tǒng)開發(fā)所用工具6</p><p> 2.3.1 Apache Tomcat6</p><p> 2.3.2 MySQL數(shù)據(jù)庫6</p><p> 2.4 系統(tǒng)運行環(huán)境7</p><
4、;p> 2.4.1 硬件環(huán)境7</p><p> 2.4.2 軟件環(huán)境7</p><p><b> 3 需求分析8</b></p><p> 3.1 需求說明8</p><p> 3.2 功能定義10</p><p> 3.2.1 功能結(jié)構(gòu)圖10</p>
5、<p> 3.2.2 系統(tǒng)模塊介紹10</p><p> 3.3系統(tǒng)的總體結(jié)構(gòu)11</p><p> 3.4 業(yè)務(wù)流程分析12</p><p> 3.4.1 學生志愿課題管理12</p><p> 3.4.2 教師課題管理13</p><p> 3.4.3 用戶基本信息管理13<
6、;/p><p> 3.4.4 自動生成終表14</p><p> 3.4.5 手動生成終表14</p><p> 4 數(shù)據(jù)庫設(shè)計16</p><p> 4.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計16</p><p> 4.1.1 實體E-R圖16</p><p> 4.1.2 實體聯(lián)系E-R圖
7、18</p><p> 4.1.3 E-R圖向關(guān)系模型的轉(zhuǎn)換19</p><p> 4.1.4 關(guān)系模式設(shè)計19</p><p> 4.1.5 數(shù)據(jù)表結(jié)構(gòu)20</p><p> 5 系統(tǒng)實現(xiàn)詳細設(shè)計與實現(xiàn)25</p><p> 5.1 系統(tǒng)登陸界面的設(shè)計與實現(xiàn)25</p><p
8、> 5.2 主控制平臺的設(shè)計與實現(xiàn)25</p><p> 5.3 用戶操作總體設(shè)計26</p><p> 5.3.1 用戶登錄設(shè)計26</p><p> 5.3.2 教師管理模塊設(shè)計29</p><p> 5.4 技術(shù)難點31</p><p> 5.4.1 中文亂碼31</p>
9、;<p> 5.4.2 HQL 語言31</p><p><b> 6 測 試32</b></p><p> 6.1 常用的測試方法32</p><p> 6.2 系統(tǒng)測試33</p><p> 6.3 系統(tǒng)的安全性分析34</p><p> 6.4 系統(tǒng)的實
10、用性分析34</p><p><b> 總結(jié)35</b></p><p><b> 參考文獻36</b></p><p><b> 致 謝37</b></p><p><b> 1 緒 論</b></p><p>
11、 1.1 選題的目的及意義</p><p> 隨著網(wǎng)絡(luò)和信息技術(shù)的發(fā)展,20世紀80年代人們提出了“辦公自動化”的概念,經(jīng)過20多年兩代的發(fā)展,辦公自動化系統(tǒng)發(fā)生了根本的變化,它主要采用客戶/服務(wù)器的二層結(jié)構(gòu)、瀏覽器/服務(wù)器/數(shù)據(jù)庫的三層結(jié)構(gòu),以網(wǎng)絡(luò)技術(shù)和協(xié)同工作技術(shù)為主要特征,實現(xiàn)工作流程自動化和非結(jié)構(gòu)化數(shù)據(jù)庫的功能,實現(xiàn)了收發(fā)文件從傳統(tǒng)的手工方式向工作流程自動化方式飛躍,可以方便的實現(xiàn)非結(jié)構(gòu)化文檔的處理。
12、</p><p> 學校處在信息接受的前沿,實現(xiàn)教學辦公自動化是必然趨勢,畢業(yè)生的“畢業(yè)設(shè)計選題管理系統(tǒng)”就是辦公自動化的一項主要內(nèi)容?!爱厴I(yè)設(shè)計選題管理系統(tǒng)”利用了方便的網(wǎng)絡(luò)通信技術(shù),使得管理員管理教師課題和學生的志愿工作變得非常方便。該系統(tǒng)采用JSP(Java Server Pages)開發(fā)技術(shù),基于B/S模式的工作方式使得數(shù)據(jù)的維護也顯得非常方便</p><p> 1.2 系統(tǒng)開
13、發(fā)的關(guān)鍵技術(shù)</p><p> 本系統(tǒng)采用了基于MVC模式的Struts框架與Hibernate框架進行開發(fā)。開發(fā)的關(guān)鍵技術(shù):</p><p> ?、?JSP技術(shù)的應(yīng)用。</p><p> ⑵ Struts框架的使用。</p><p> ?、?Hibernate框架的使用。</p><p> 1.3 本課題研究的
14、主要內(nèi)容以及展望</p><p> “畢業(yè)設(shè)計選題管理系統(tǒng)“是基于瀏覽器/服務(wù)器架構(gòu)的軟件管理系統(tǒng),它的開發(fā)技術(shù)是目前比較流行的基于windows 平臺的JSP結(jié)合JAVASCRIPT技術(shù),數(shù)據(jù)庫采用了SUN 公司開發(fā)的MYSQL數(shù)據(jù)庫,MYSQL是高性能的數(shù)據(jù)庫管理系統(tǒng),在可靠性、易用性、可伸縮性、業(yè)務(wù)職能功能等方面都具有非常優(yōu)秀的表現(xiàn),它具有支持多用戶同時訪問,自適應(yīng)內(nèi)存調(diào)節(jié)特性等優(yōu)點,有良好的可擴展性和可
15、維護性,更容易控制。</p><p> “畢業(yè)設(shè)計選題管理系統(tǒng) ”分為“前臺”和“后臺“兩部分,前臺是實現(xiàn)學生和教師瀏覽網(wǎng)站的功能,學生用戶通過網(wǎng)上瀏覽教師的課題選擇自己喜歡的課題,然后提交到后臺數(shù)據(jù)庫保存選題信息,待由管理員處理信息,而教師則可以通過網(wǎng)上瀏覽申請課題,然后提交到后臺數(shù)據(jù)庫,待由管理員處理信息,學生和教師只能瀏覽數(shù)據(jù)庫信息,不能修改,數(shù)據(jù)庫的相關(guān)信息處理由管理員完成。管理員處理教師課題和學生志愿
16、要完成的操作有:對學生志愿的添加、刪除、修改,能夠查看有哪些學生選擇了志愿,哪些學生還沒有選擇志愿。對教師課題管理要完成的操作有:對教師課題的添加、刪除、修改,并要對教師申請的課題進行審查、批準。另外,管理員還要完成學生課題的排列:分為兩種方式:自動生成終表和手動生成終表,按志愿優(yōu)先級進行排列。發(fā)布公告,查看公告。</p><p><b> 2 系統(tǒng)開發(fā)技術(shù)</b></p>
17、<p> 2.1語言可行性的分析</p><p> 2.1.1 SERVLET技術(shù)簡介</p><p> Servlet是Java技術(shù)對CGI(Common Gateway Interface)編程的回答。Servlet程序在服務(wù)器端運行,動態(tài)地生成Web頁面。同時它也作為一個中間層,負責連接來自Web瀏覽器或其他HTTP客戶程序的請求和HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序。
18、與傳統(tǒng)的CGI和許多其他類似CGI的技術(shù)相比,Java Servlet具有更高的效率,更容易使用,功能更強大,具有更好的可移植性,更節(jié)省投資,更高效。Servlet被調(diào)用的流程如圖2.1所示。</p><p> 圖2.1 Servlet被調(diào)用的流程</p><p><b> 圖2.1說明:</b></p><p> (1) 客戶端(通常為
19、Web瀏覽器)向Web服務(wù)器發(fā)送一個基于HTTP協(xié)議的請求。</p><p> (2) Web服務(wù)器接收到該請求,并將請求交給Servlet容器處理。</p><p> (3) Servlet容器根據(jù)Servlet的配置來查找或創(chuàng)建Servlet的實例,并執(zhí)行該Servlet,Servlet容器必須把客戶端請求和響應(yīng)封裝成Servlet規(guī)范中規(guī)定的請求和響應(yīng)對象傳給Servlet。&l
20、t;/p><p> (4) Servlet可以使用請求對象獲取客戶端的信息,比如IP地址、請求的參數(shù)等,以及執(zhí)行特定的業(yè)務(wù)邏輯。Servlet可以使用響應(yīng)對象向客戶端發(fā)送業(yè)務(wù)數(shù)據(jù)及業(yè)務(wù)執(zhí)行的結(jié)果。</p><p> (5)Servlet處理完該請求后,Servlet容器要保證Servlet的響應(yīng)內(nèi)容能夠發(fā)送到客戶端去(flush),最后返回到Web服務(wù)器?!?】</p>&l
21、t;p> 2.1.2 JSP及其特點</p><p> JSP及其特點[2]:JavaServer Pages(JSP)是一種實現(xiàn)普通靜態(tài)HTML和動態(tài)HTML混合編碼的技術(shù)。JSP和ASP相比具有兩方面的優(yōu)點。首先,動態(tài)部分用Java編寫,而不是VB Script或其他Microsoft語言,不僅功能更強大而且更易于使用。第二,JSP應(yīng)用可以移植到其他操作系統(tǒng)和非Microsoft的Web服務(wù)器上。J
22、SP和純Servlet相比JSP并沒有增加任何本質(zhì)上不能用Servlet實現(xiàn)的功能。但是,在JSP中編寫靜態(tài)HTML更加方便,不必再用println語句來輸出每一行HTML代碼。更重要的是,借助內(nèi)容和外觀的分離,頁面制作中不同性質(zhì)的任務(wù)可以方便地分開:比如,由頁面設(shè)計專家進行HTML設(shè)計,同時留出供Servlet程序員插入動態(tài)內(nèi)容的空間[4]。</p><p> 2.2 框架的可行性</p>&l
23、t;p> 2.2.1 MVC(Model View Controller)分層結(jié)構(gòu)</p><p> MVC即模型-視圖-控制器模式是一種“分治”的思想。模型,即相關(guān)的數(shù)據(jù),它是對象的內(nèi)在屬性;視圖是模型的外在表現(xiàn)形式,一個模型可以對應(yīng)一個或者多個視圖,視圖還具有與外界交互的功能;控制器是模型與視圖的聯(lián)系紐帶,控制器提取通過視圖傳輸進來的外部信息轉(zhuǎn)化成相應(yīng)事件,然后由對應(yīng)的控制器對模型進行更新;相應(yīng)的,
24、模型的更新與修改將通過控制器通知視圖,保持視圖與模型的一致性。圖2-2揭示了這三者之間的關(guān)系:</p><p> 圖2-2 MVC模型圖</p><p> 2.2.2 基于MVC結(jié)構(gòu) web系統(tǒng)設(shè)計</p><p> MVC是包含模型、視力、控制器的分層結(jié)構(gòu),其系統(tǒng)設(shè)計也分別從這三個方面入手,</p><p> 圖2-3為基于MVCW
25、EB系統(tǒng)的圖形化描述。</p><p> 圖2-3 MVC模型</p><p><b> ⑴ 控制器的設(shè)計</b></p><p> 控制器是模型和視圖聯(lián)系的紐帶,同時也是系統(tǒng)的控制中心。根據(jù)控制器在系統(tǒng)中的不同作用,將控制器抽象成四種控制器類型,即主控制器(MainController)、請求映射控制器(RequestMappingCo
26、nntroller)、視圖選擇控制器(ViewController)和模型控制器(ModelController)。其中,主控制器在系統(tǒng)服務(wù)器最前端,用于從xml配置文件中獲取HTTP請求映射表,接收客戶的HTTP請求并且將該請求傳送給請求映射控制器和視圖選擇控制器;請求映射控制器將傳送來的HTTP請求映射到相應(yīng)的處理器(處理器采用JavaBean形式)進行處理,其映射表直接從Servlet Context的變量中獲?。ㄒ驗樵撚成浔硪呀?jīng)
27、由主控制器裝入),處理完后返回結(jié)果;視圖控制器根據(jù)HTTP請求映射表及處理器處理后的結(jié)果進行下一個視圖的選擇;模型控制器負責客戶會話數(shù)據(jù)的處理:每一個客戶對應(yīng)一個會話模型,用來描述客戶的各種狀態(tài)等。</p><p><b> ⑵ 視圖層設(shè)計</b></p><p> 視圖層即用戶界面,在WEB系統(tǒng)中表現(xiàn)為用戶可見的網(wǎng)頁,對于每一個使用HTTP請求響應(yīng)模型WEB應(yīng)用
28、,View組件基本上總是和響應(yīng)相關(guān)聯(lián)的組件,并將結(jié)果返回給用戶,視圖層應(yīng)該盡量減少業(yè)務(wù)邏輯或復雜的分析。</p><p><b> ?、?模型層設(shè)計</b></p><p> 模型層通常表現(xiàn)為業(yè)務(wù)對象或者物理后端系統(tǒng)。模型層通常都是業(yè)務(wù)相關(guān)的,對于數(shù)據(jù)庫的相關(guān)操作,及復雜的業(yè)務(wù)邏輯分析都應(yīng)該在模型層實現(xiàn)?!?5】</p><p> 2.3
29、系統(tǒng)開發(fā)所用工具</p><p> 2.3.1 Apache Tomcat</p><p> Tomcat服務(wù)器是一個免費的開放源代碼的Web應(yīng)用服務(wù)器,它是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Se
30、rvlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet 2.4和JSP 2.0規(guī)范。因為Tomcat技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應(yīng)用服務(wù)器。</p><p> 2.3.2 MySQL數(shù)據(jù)庫</p><p> MySQL數(shù)據(jù)庫技術(shù):MySQL是一個
31、快速的多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務(wù)器。MySQL服務(wù)器支持關(guān)鍵任務(wù)。重負載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個大配置(mass-deployed)的軟件中去。</p><p> (1) MySQL是一個數(shù)據(jù)庫管理系統(tǒng)。</p><p> 一個數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合。它可以是從一個簡單的銷售表到一個美術(shù)館、或者一個社團網(wǎng)絡(luò)的龐大的信息集合。如果要添加、訪問和處理存儲在一個
32、計算機數(shù)據(jù)庫中的數(shù)據(jù),你就需要一個像MySQL這樣的數(shù)據(jù)庫管理系統(tǒng)。從計算機可以很好的處理大量的數(shù)據(jù)以來,數(shù)據(jù)庫管理系統(tǒng)就在計算機處理中和獨立應(yīng)用程序或其他部分應(yīng)用程序一樣扮演著一個重要的角色。</p><p> (2) MySQL是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。</p><p> 關(guān)系數(shù)據(jù)庫把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個大倉庫中要好得多,這樣做將增加你的速度和靈活性?!?/p>
33、MySQL”中的SQL代表“Structured Query Language”(結(jié)構(gòu)化查詢語言)。</p><p> (3) MySQL服務(wù)器是一個快的、可靠的和易于使用的數(shù)據(jù)庫服務(wù)器。</p><p> 如果這是你正在尋找的,你可以試一試。MySQL服務(wù)器還包含了一個由用戶緊密合作開發(fā)的實用特性集。</p><p> (4) MySQL服務(wù)器工作在客戶/服
34、務(wù)器或嵌入系統(tǒng)中。</p><p> MySQL數(shù)據(jù)庫服務(wù)器是一個客戶/服務(wù)器系統(tǒng),它由多線程SQL服務(wù)器組成,支持不同的后端。多個不同的客戶程序和庫。管理工具和廣泛的應(yīng)用程序接口(APIs)。</p><p> (5) MySQL也可以是一個嵌入的多線程庫,你可以把它連接到你的應(yīng)用中而得到一個小、快且易于管理的產(chǎn)品。</p><p> 2.4 系統(tǒng)運行環(huán)境&
35、lt;/p><p> 2.4.1 硬件環(huán)境</p><p><b> 后臺數(shù)據(jù)庫服務(wù)器:</b></p><p> 因為服務(wù)器為數(shù)據(jù)庫服務(wù)器,且要完成高密度的運算量,所以應(yīng)采用較高檔的服務(wù)器。考慮到與軟件的兼容性,建議采用Intel Pentium 4多處理器系統(tǒng)、512MB RAM、80GB以上硬盤。</p><p>
36、;<b> 客戶機:</b></p><p> 采用Intel Pentium 4 多處理器系統(tǒng)、512MB RAM、80GB以上硬盤。</p><p> 網(wǎng)絡(luò)配置:10M/100M 網(wǎng)絡(luò)帶寬、100Mb/s網(wǎng)卡、16口交換機。</p><p> 2.4.2 軟件環(huán)境</p><p><b> 操作系
37、統(tǒng)的選擇:</b></p><p> 數(shù)據(jù)庫服務(wù)器:因為服務(wù)器為數(shù)據(jù)庫服務(wù)器,特別對穩(wěn)定性有極高的要求,且支持多CPU。所以應(yīng)采用Windows 2000 Server,因為它有優(yōu)良的穩(wěn)定性和操作性。</p><p><b> 數(shù)據(jù)庫的選擇:</b></p><p> 因大部分情況下軟件都是在Windows系統(tǒng)下使用的,考慮M
38、ySQL的優(yōu)勢在于中國普遍使用的免費數(shù)據(jù)庫軟件并且與系統(tǒng)的兼容度較高,并支持集成性安全檢測,且對系統(tǒng)的資源消耗較小。相比之下,Oracle數(shù)據(jù)庫雖然性能較高,但由于其可操作性和方便性不如MySQL好,并且服務(wù)器沒有使用磁盤陣列和多處理器,無法發(fā)揮Oracle數(shù)據(jù)庫設(shè)計上的性能優(yōu)勢,并且對系統(tǒng)性能要求較高。至于Access之類的數(shù)據(jù)庫,由于其性能較低,且并發(fā)度太低又不具安全性,故不予考慮。最終決定后臺數(shù)據(jù)庫用MySQL5.0。當然整個系統(tǒng)
39、只能在Windows下運行。</p><p><b> 3 需求分析</b></p><p> 畢業(yè)生選題管理一直是學校為培養(yǎng)合格的畢業(yè)生所做的最重要的工作,學校為畢業(yè)提供合適的課題,畢業(yè)生通過對課題的設(shè)計,綜合復習學習過的知識,將理論和實踐結(jié)合起來,為以后的工作積累寶貴的經(jīng)驗。</p><p> 傳統(tǒng)的畢業(yè)設(shè)計的選題過程是:指導老師根據(jù)
40、院(系)的要求,設(shè)計出一定數(shù)量的畢業(yè)課題并提交給教學管理人員審閱;教學管理人員審閱課題,檢查出重復的課題,并根據(jù)學生的知識水平判斷課題的難易是否適宜,提出修改意見,反饋給教師修改;畢業(yè)課題設(shè)計完成之后,由學院負責人將全部課題發(fā)給畢業(yè)生,班級負責人組織畢業(yè)生選題,然后交給教學管理人員,教學管理人員檢查學生的選題情況,并最終確定選題結(jié)果。雖然是個合理的有序的過程,但在實際過程中,這種管理仍然存在著過程繁瑣、工作效率低等問題。</p&g
41、t;<p> 隨著計算機的普及、網(wǎng)絡(luò)和信息化的迅速發(fā)展,計算機選課系統(tǒng)、計算機信息管理系統(tǒng)正在普及、然而針對畢業(yè)設(shè)計雙向選題的系統(tǒng)設(shè)計卻少見報道。開發(fā)一個基于WEB的畢業(yè)選題系統(tǒng),在提高畢業(yè)設(shè)計選題的工作效率,節(jié)省人力、物理資源方面都有極大的優(yōu)勢。目前,在大多數(shù)高校院(系)都沒有一套完整的選題系統(tǒng),因此設(shè)計和開發(fā)這樣的一個選題系統(tǒng)具有極大的現(xiàn)實意義。</p><p> 針對上述情況,本文采用目前
42、流行的B/S架構(gòu)模式,設(shè)計了一套基于JSP+MYSQL的畢業(yè)設(shè)計選題系統(tǒng)。該系統(tǒng)增強了指導教師、學生和管理人員在畢業(yè)設(shè)計選題過程中的交互性,教師能夠在線提交和更新待審題目,學生可以在線選題并且查看選題結(jié)果,管理人員可以在審閱待審題目并且調(diào)整學生選題</p><p><b> 3.1 需求說明</b></p><p><b> ?。?) 管理員</b&
43、gt;</p><p> 錄入或?qū)虢處熜畔?,管理員將畢業(yè)學生基本信息導入,管理員是所有用戶中權(quán)限級別最高的用戶,能夠?qū)處?、學生和個人信息、出題信息、選題信息進行修改。同時,還要負責通知發(fā)布、選題結(jié)果公布等。</p><p><b> ?。?) 教師</b></p><p> 教師登錄系統(tǒng)后,能夠修改的數(shù)據(jù)有:密碼、個人聯(lián)系方式、包括Em
44、ail和電話,其它信息不能私自修改。對于題目信息和要求,可以對題目信息和要求,可以通過管理員來修改。教師能后查看到選自己課題的學生人數(shù)和學生基本情況。</p><p><b> ?。?) 學生</b></p><p> 學生登錄系統(tǒng)后,只能修改密碼、個人的聯(lián)系方式、其它信息不能修改。每個學生只能選一個題目或者一個課題項目的一個模塊部分,選擇之后在規(guī)定的時間內(nèi)可以更改
45、,規(guī)定時間以外不能更改,對于已選題目不能再次被選,除非其他學生在規(guī)定的時間內(nèi)退選。</p><p> 畢業(yè)生選題管理系統(tǒng)總體流程圖,如圖3.1所示。</p><p> 圖3.1 畢業(yè)生選題管理系統(tǒng)總體流程圖</p><p><b> 3.2 功能定義</b></p><p> 用列表的方式,逐項定量和定性地敘述對
46、系統(tǒng)所提出的功能要求,說明輸入什么量、經(jīng)怎樣的處理、得到什么輸出,說明系統(tǒng)的容量,包括系統(tǒng)支持的終端數(shù)據(jù)和應(yīng)支持的并行操作的用戶數(shù)等指標。</p><p><b> 對出題的要求:</b></p><p> ?。?)每位有資格教師可以出不少于指導名額、不多于8個論題;</p><p> ?。?)在管理員確定的時間內(nèi)出題;</p>
47、<p> ?。?)不能與已有出題重復。</p><p><b> 審查的程序:</b></p><p> ?。?)管理員將所有教師出題提交學院學術(shù)委員會進行審查;</p><p> ?。?)管理員將審查后的備選論題公布在學院網(wǎng)站上,備選論題與指導教師一一對應(yīng)。</p><p><b> 選題要求
48、:</b></p><p> ?。?)每個學生只能選擇一個題目;</p><p> (2)對于同一課題只能一個學生選擇(多人合作完成除外);</p><p> 3.2.1 功能結(jié)構(gòu)圖</p><p> 根據(jù)用戶和系統(tǒng)需求,本系統(tǒng)劃分為三個子系統(tǒng),即管理員子系統(tǒng)、教師子系統(tǒng)、學生子系統(tǒng)。</p><p&g
49、t; 3.2 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 3.2.2 系統(tǒng)模塊介紹</p><p> 根據(jù)實際情況,系統(tǒng)分為三大模塊,即三個子系統(tǒng)。下面詳細介紹各系統(tǒng)的功能及要求。</p><p><b> ?。?) 管理員模塊</b></p><p> 網(wǎng)絡(luò)的維護需要管理員對系統(tǒng)的必要的設(shè)置。并保證系統(tǒng)的正常運行。在不系
50、統(tǒng)中,系統(tǒng)規(guī)定了管理員的權(quán)限與功能,管理員有權(quán)對數(shù)據(jù)庫進行維護。管理員功能系統(tǒng)包括添加功能、修改功能以及統(tǒng)計功能。添加功能能夠添加其他管理員、教師或者學生;修改功能能夠修改教師、學生資料,能夠根據(jù)專業(yè)設(shè)置情況添加課題類別,修改/添加課題的相關(guān)信息;統(tǒng)計功能主要是在選題過程結(jié)束后,由管理員對結(jié)果進行統(tǒng)計,便于院(系)及時掌握學生選題情況。</p><p><b> ?。?) 教師模塊</b>&
51、lt;/p><p> 課題信息發(fā)布,教師可以錄入每個選題信息,但是需要管理員審核后才能供學生選擇;個人資料的修改與添加,教師資料的修改與添加可由管理員或者教師自己來完成;查看選課學生資料,教師可以查看選擇自己課題的學生的資料,決定是否指導該學生的畢業(yè)設(shè)計。</p><p><b> ?。?) 學生模塊</b></p><p> 學生登錄系統(tǒng)需要
52、自己的學號,登錄后學生可以進行的操作:僅能修改個人的聯(lián)系方式;瀏覽供選擇的課題信息,選擇課題;在規(guī)定時間內(nèi)的選擇和更改課題;在規(guī)定的時間內(nèi)查詢選題結(jié)果。</p><p> 3.3系統(tǒng)的總體結(jié)構(gòu)</p><p> 根據(jù)畢業(yè)設(shè)計選題的業(yè)務(wù)情況,系統(tǒng)共分成管理員,教師,學生三大系統(tǒng)模塊,系統(tǒng)功能設(shè)置 ,管理員用戶操作,教師信息修改,選題題目提交,選題題目審核,學生信息導入,學生信息修改,題目
53、選報,信息瀏覽功能。</p><p><b> 功能如圖所示:</b></p><p> 圖3.3 系統(tǒng)總體結(jié)構(gòu)圖</p><p> 3.4 業(yè)務(wù)流程分析</p><p> 圖3.4 業(yè)務(wù)流程示意圖</p><p> 3.4.1 學生志愿課題管理</p><p>
54、 在這一塊里,可以分為修改學生志愿、刪除學生志愿、刪除學生課題和查看未選志愿學生四大部分,它的處理流程可以用以下圖表(圖3.5)方式描述:</p><p> 圖 3.5 管理員對學生志愿操作流程</p><p> 管理人員首先查看要更新的數(shù)據(jù),進行修改后,保存進數(shù)據(jù)庫。</p><p> 3.4.2 教師課題管理</p><p>
55、管理員對教師課題管理分為:修改教師課題、添加教師課題、刪除教師課題和教師申請課題管理四部分,同時對數(shù)據(jù)庫中的信息進行最后的處理,拿出最終的畢業(yè)設(shè)計課題小組分組情況,處理流程如下圖(圖3.6):</p><p> 圖3.6 教師課題管理部分流程</p><p> 3.4.3 用戶基本信息管理</p><p> 用戶基本信息管理包括了對用戶信息的添加、刪除、修改等
56、基本操作,添加用戶后,該用戶可以憑借自己的帳號登陸管理系統(tǒng);刪除用戶信息后,該用戶登陸信息被刪除,不能進行登陸;需要注意的是,在修改用戶信息時,不要輕易改動用戶登陸信息,否則會造成用戶無法登陸。其數(shù)據(jù)處理流程如下圖(圖3.7)所示:</p><p> 圖3.7 用戶信息管理操作</p><p> 3.4.4 自動生成終表</p><p> 自動生成終表是按學生
57、志愿順序生成終表,處理流程如圖3.8:</p><p> 圖3.8 自動生成終表</p><p> 3.4.5 手動生成終表</p><p> 手動生成終表是由管理員判斷哪位學生修哪門課題,不一定要按學生志愿的順序生成終表,比如一位學生的第一志愿是“空調(diào)設(shè)計”,第二志愿是“網(wǎng)絡(luò)設(shè)計”,在手動排列生成終表時,管理員很可能直接就將該學生的設(shè)計課題定為第二志愿“網(wǎng)絡(luò)
58、設(shè)計”,而不會考慮第一志愿。處理流程如下圖(圖3.9):</p><p> 圖3.9 手動排列生成終表流程</p><p><b> 4 數(shù)據(jù)庫設(shè)計</b></p><p> 4.1 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p><p> 在一個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程中,數(shù)據(jù)庫的設(shè)計是整個系統(tǒng)的基礎(chǔ)。良好的數(shù)據(jù)結(jié)構(gòu)設(shè)計不僅可以減
59、少數(shù)據(jù)冗余、提高查詢效率,而且還可以降低應(yīng)用程序的編寫難度,提高工作效率。</p><p> 4.1.1 實體E-R圖</p><p> 在需求分析階段所得到的應(yīng)用需求應(yīng)該首先抽象為信息世界的結(jié)構(gòu),才能更好的更準確的用數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)這些需求。根據(jù)需求分析畫出E-R圖。畢業(yè)生選題管理系統(tǒng)的E-R圖如下圖所示。</p><p> 圖4.1 管理員基本信息E-R
60、圖</p><p> 圖4.2 學生基本信息E-R圖</p><p> 圖4.3 教師基本信息E-R圖</p><p> 圖4.4 課程信息E-R圖</p><p> 以下幾個圖示實體與實體之間的關(guān)系:</p><p> 4.1.2 實體聯(lián)系E-R圖</p><p> 實體聯(lián)系E-R
61、圖如圖4.10所示。</p><p> 1 n</p><p><b> 1</b></p><p><b> 1</b></p><p> n 1</p><p> 圖4.10 實體聯(lián)系圖<
62、;/p><p> 4.1.3 E-R圖向關(guān)系模型的轉(zhuǎn)換</p><p> 關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E-R圖則是由實體,實體的屬性和實體間的聯(lián)系三個要素組成。所以將E-R圖轉(zhuǎn)換為關(guān)系模型實際上就是要將實體,實體的屬性和實體間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。轉(zhuǎn)換原則如下:</p><p> (1) 實體類型的轉(zhuǎn)換:將每個實體類型轉(zhuǎn)換成一個關(guān)系模式,實體的屬性及為
63、關(guān)系模式的屬性,實體標識符及為關(guān)系模式的鍵。</p><p> (2) 聯(lián)系類型的轉(zhuǎn)換,根據(jù)不同的情況做不同的處理:</p><p> ?、?若實體間的聯(lián)系是1:1,可以在兩個實體類型轉(zhuǎn)換成的兩個關(guān)系模式中的任意一個關(guān)系模式的屬性中加入另一各關(guān)系模式的鍵和聯(lián)系類型的屬性。</p><p> ② 若實體間的聯(lián)系1:N,則在N端實體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實體
64、類型轉(zhuǎn)換成的關(guān)系模式的鍵和聯(lián)系類型的屬性。</p><p> ?、廴魧嶓w間的聯(lián)系是M:N,則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實體類型的鍵加上關(guān)系類型的屬性,而鍵為兩端實體間的組合。</p><p> 4.1.4 關(guān)系模式設(shè)計</p><p> 依照該規(guī)則將教學管理系統(tǒng)的E-R圖轉(zhuǎn)換為關(guān)系模型如下:</p><p> 將每一個實體
65、轉(zhuǎn)換成一個關(guān)系(關(guān)系就是給出關(guān)系名,寫出屬性,并標明該關(guān)系的主鍵)。</p><p><b> JB031模式:</b></p><p> ?。?).a(chǎn)dmin_t(id,account,name,password,college,phone,mail,role)</p><p> 管理員信息(管理員帳號,管理員姓名,管理員密碼,所屬院系,
66、聯(lián)系方式,郵箱,角色)</p><p> ?。?).student_id(id,stuid,name,password,sex,class,profession,phone,mail,topic,role)</p><p> 學生信息(學號,學生姓名,登錄密碼,性別,所在班級,所屬院系,聯(lián)系方式,郵箱,課題,角色)</p><p> ?。?).teacher_t(
67、id,teach_id,name,password,sex,title,education,college,phone,mail,role)</p><p> 教師信息(教師工號,教師姓名,登錄密碼,性別,職稱,學歷,所屬院系,聯(lián)系方式,郵箱,角色)</p><p> ?。?).college_t(id,college_id,college_name)</p><p&
68、gt; 學院信息(學院編號,學院名稱)</p><p> ?。?).profession_t(id,profession_id,profession_name,college)</p><p> 專業(yè)信息(專業(yè)編號,專業(yè)名稱,所屬院系)</p><p> (6).topic_t(id,topic_name,teacher,permit_col,permit_p
69、rof,limit_no,difficult,workload,topic_prop,topic_source,topic_intro,topic_ask,topic_date)</p><p> 課題信息(課題名稱,出題教師,允許學院,允許專業(yè),限選人數(shù),課題難度,工作量,課題性質(zhì),課題來源,課題簡介,課題要求,出題日期)</p><p> ?。?).a(chǎn)pply_t(id,topic_
70、state,student_state,topic_num,select_num,apply_date)</p><p> 課題申請信息(審核狀態(tài),正選狀態(tài),課題編號,已選人數(shù),申請日期)</p><p> ?。?).wash_t(id,student_id,wash_id,topic_id,select_time)</p><p> 預選信息(學號,志愿號,課
71、題名稱,預選日期)</p><p> (9).systems_t(id,college,college_state,produce_topic,view_topic,select_topic,produce_no)</p><p> 系統(tǒng)信息 (學院,學院選題狀態(tài),出題狀態(tài),預覽狀態(tài),選題狀態(tài),允許出題數(shù))</p><p> ?。?0).document_t(i
72、d,user_id,user_name,to_who,user_type,file_name,file_path,file_context,file_rank,create_time)</p><p> 文件(用戶賬號,用戶姓名,接收者,用戶角色,文件名稱,文件路徑,文件內(nèi)容,文件歸類,發(fā)表日期)</p><p> 4.1.5 數(shù)據(jù)表結(jié)構(gòu)</p><p> 1
73、.管理員信息表,如表4.11。</p><p> 表4.11 管理員信息表</p><p> 2.學生信息表,如表4.12。</p><p> 表4.12 學生信息表</p><p> 3.教師信息表,如表4.13。</p><p> 表4.13 教師信息表</p><p> 4.課
74、題信息表,如表4.14。</p><p> 表4.14 課題信息表</p><p> 5.學院信息表,如表4.15。</p><p> 表4.15 學院信息表</p><p> 6.專業(yè)信息表,如表4.16。</p><p> 表4.16 專業(yè)信息表</p><p> 7.課題申請信
75、息表,如表4.17。</p><p> 表4.17課題申請信息表</p><p> 8.學生預選信息表,如表4.18。</p><p> 表4.18學生預選信息表</p><p> 9.系統(tǒng)設(shè)置信息表,如表4.19。</p><p> 表4.19系統(tǒng)設(shè)置信息表</p><p> 10
76、文件信息表,如表4.20。</p><p> 表4.20文件信息表</p><p> 5 系統(tǒng)實現(xiàn)詳細設(shè)計與實現(xiàn)</p><p> 根據(jù)已有的需求信息和總體設(shè)計,來進行系統(tǒng)的詳細設(shè)計和實現(xiàn)。為此,我們建立了一個Web工程,系統(tǒng)的設(shè)計和實現(xiàn)如下。</p><p> 5.1 系統(tǒng)登陸界面的設(shè)計與實現(xiàn)</p><p>
77、; 用戶登陸模塊最基本的作用是為了限制該管理系統(tǒng)資源的使用,只有經(jīng)過身份確認的操作員才能對其管理系統(tǒng)進行相關(guān)操作。其基本過程是從客戶端取得提交的用戶名和密碼,然后到數(shù)據(jù)庫中進行核對。如果該信息在數(shù)據(jù)庫中存在,那么就可以成功登錄到下一界面,否則就會被該系統(tǒng)拒之門外。</p><p> 選擇連接數(shù)據(jù)庫后,進入用戶登陸界面。在用戶登陸界面中輸入用戶名和密碼,從數(shù)據(jù)庫表中檢查是否有相應(yīng)的用戶名和密碼。如果用戶名和密碼
78、錯誤,系統(tǒng)就會給出錯誤提示,并且不會有任何的頁面跳轉(zhuǎn)。如果輸入的用戶名和相應(yīng)密碼正確,則可以點擊“確定”進入主控制平臺。用戶登陸的界面如圖5.1所示。</p><p> 圖5.1登錄系統(tǒng)界面</p><p> 5.2 主控制平臺的設(shè)計與實現(xiàn)</p><p> 通過用戶登陸界面,進入主控制平臺。在主控制界面中,包括教師管理、課題管理、學生管理、返回管理員登錄頁面
79、等功能模塊的連接,管理員可通過對管理模塊的選擇進行相應(yīng)的操作。主控界面如圖5.2所示。</p><p> 圖5.2 主控制界面</p><p> 5.3 用戶操作總體設(shè)計</p><p> 用戶操作主要包括管理員登錄和學生及教師管理模塊,具體功能如下:</p><p> 管理員登錄:用于登錄系統(tǒng)。</p><p&
80、gt; 學生管理模塊:用于瀏覽、添加和修改學生及教師的信息,以及課題的管理。</p><p> 5.3.1 用戶登錄設(shè)計</p><p> 用戶登錄是用戶進入主頁面的入口,其運行結(jié)果如圖5.3所示。</p><p> 圖5.3 用戶登錄運行結(jié)果</p><p> 系統(tǒng)登陸是畢業(yè)生選題管理中最先使用的功能,因為用戶登陸在數(shù)據(jù)庫中使用的
81、是人員表,人員表中有一個role字段,是來標識是否是管理員的。在登陸時要根據(jù)數(shù)據(jù)庫的這個字段來判斷此用戶是否具有管理員的權(quán)限。在網(wǎng)頁里添寫用戶名和密碼后點擊登陸按鈕,網(wǎng)頁會訪問一個URL,這個URL是“l(fā)ogon.action”,</p><p> 這個action的name屬性的值是login,它是Struts的Actoin的實現(xiàn)類在配置文件中的名字,如下所示:</p><p> &
82、lt;action name="login" type="com.graduate.action.LoginAction" /></p><p> action是Struts的Action的URL,他們在Struts的配置文件中都是已經(jīng)配好的,如下所示:</p><p> <action name="login"
83、class="com.graduate.LoginAction"></p><p> <result name="studentlogin">/student/index.jsp</result></p><p> <result name="fail" >login.jsp</
84、result></p><p> <result name="teacherlogin">/teacher/index.jsp</result></p><p> <result name="fail" >login.jsp</result></p><p> <
85、;result name="adminlogin">/admin/index.jsp</result></p><p> <result name="fail" >login.jsp</result></p><p><b> </action></b></p>
86、;<p> 在這個配置文件中,可以了解到如下信息:</p><p> 根據(jù)name="login"可以找到與之相對應(yīng)的Action的實現(xiàn)類“com.graduate.action.LoginAction”。</p><p> 根據(jù)type=" com.graduate.action.LoginAction "可以找到處理用戶數(shù)據(jù)的
87、Action類。</p><p> 根據(jù)<result name="success" />/user/index.jsp</result>可以了解,這個Action返回success時,頁面會被轉(zhuǎn)到/user/index.jsp文件,這就是登陸成功的頁面。如果當Action返回fail時,頁面會被轉(zhuǎn)到login.jsp文件,用戶重新登錄,并告訴用戶的錯誤信息。<
88、/p><p> Struts的UserAction實現(xiàn)類的execute()方法是最先被執(zhí)行的,這個方法本身也沒有具體的事務(wù),而是根據(jù)action的參數(shù)不同執(zhí)行相應(yīng)的方法。在登陸頁里面可以找到有一個“action=logon”的字樣,它的目的就是在這里做邏輯判斷。當action=logon時調(diào)用logon()方法。logon()方法從UsersForm中得到用戶提交的數(shù)據(jù),然后在調(diào)用UsersDao()的logon
89、Users()方法。并且把UsersForm轉(zhuǎn)成Users類做為logonUsers()方法的參數(shù)。調(diào)用后會返回一個boolean型的值。如果為真,則返回“mapping.findForward("success");”否則返回“mapping.findForward("fail");”也就是當用戶登陸成功后,返回給用戶登陸成功的頁面,登陸失敗后返回用戶一個登陸失敗的頁面。那么UsersDao的l
90、ogonUsers()方法是根據(jù)什么得到的返回值呢,現(xiàn)在就讓我們看看這個方法,</p><p> 這個方法先通過HibSessionFactory得到一個Hibernate的Session并且開始一個事務(wù),Session再像使用一個欲編譯似的命令似的東西,設(shè)定參數(shù)、提交事務(wù)和最后在關(guān)閉Session.。得到一個List里面就存儲著所有查詢出的結(jié)果。根據(jù)這個結(jié)果就可以判斷出該用戶是否有登陸的權(quán)根了,在返回true
91、 或者false。就這樣合法的用戶就可以順利的登陸了。那剛才那些有些類似于欲編譯的東西是什么呢,這些就是Hibernate特有的查詢語言,被稱為Hibernate 查詢語言(HQL),而它本身也就是使用的JDBC的欲編譯技術(shù)。</p><p><b> 關(guān)鍵代碼如下:</b></p><p> public String execute(){</p>
92、<p> if(hasErrors()){</p><p> return INPUT;</p><p><b> }</b></p><p> ActionContext.getContext().getSession().put("user", admin);</p><p>
93、 return SUCCESS;</p><p><b> }</b></p><p> public void validate(){</p><p> String number = (String)ActionContext.getContext().getSession().get("number");<
94、;/p><p> System.out.println("name-----"+name);</p><p> if (name == null || name.trim().equals("")) { </p><p> addFieldError("username", "用戶名不能為空
95、"); </p><p><b> return;</b></p><p><b> }</b></p><p> if (psw == null || psw.trim().equals("")) { </p><p> addFieldError(&qu
96、ot;userpsw", "密碼不能為空"); </p><p><b> return;</b></p><p><b> }</b></p><p> if (!number.equalsIgnoreCase(num)) { </p><p> ad
97、dFieldError("checkcode", "驗證碼不正確"); </p><p><b> return;</b></p><p><b> }</b></p><p> AdminDAO dao = (AdminDAO)DAOFactory.getDAOInstanc
98、e(AdminDAO.class);</p><p> admin = dao.findByUserId(name);</p><p> if(admin==null ||!psw.trim().equals(admin.getPassword())){</p><p> addFieldError("login", "不是合法用
99、戶");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> 5.3.2 教師管理模塊設(shè)計</p><p> 教師管理模塊主要包括審核課題信息
100、、添加課題、查看教師、添加教師。此模塊文件架構(gòu)如圖5.4所示。</p><p> 各項管理工作都是在用戶成功登陸后的管理頁面進行的,在管理控制頁面的左側(cè)是各項的相關(guān)鏈接,右側(cè)是操作平臺。</p><p> 單擊“添加課題信息”,即打開添加課題信息的頁面如圖5.4所示。</p><p> 圖5.4 添加課題信息頁面</p><p> 添
101、加課題信息的鏈接是這樣的,如下所示:</p><p> <a href="addtopic.jsp" target="main">添加課題</a></p><p> 在Struts配置文件中,添加課題信息的鏈接沒有使用Action類,也沒有使用Action的實現(xiàn)類,如下所示:</p><p> a
102、ddTopic.jsp文件,只是一個普通的JSP文件,但是它的表單元素都是與TopicAction相對應(yīng)的,TopicAction如下所示:</p><p> TocpicAction類中的reset()方法作用是當用戶點擊“重置”按鈕時,清空input輸入框的內(nèi)容,toString()方法覆蓋了Object和toString()方法,populate()方法很有,它把TopicAction轉(zhuǎn)化成Topic實體
103、類,大大方便了程序在對數(shù)據(jù)庫操作時使用的方便。而且這個方法中還把申請日期等表單元素的值由字符型轉(zhuǎn)成日期類型。</p><p> 在addTopic.jsp頁面中的action上可以看到它要提交的URL,如下所示:</p><p> <form name="topic" method="post" action="topic_add
104、.action" >,Topic的action實現(xiàn)類是“com.graduate.TopicAction”,如下所示:</p><p> public T save(T entity) {</p><p> Session session = HibernateSessionFactory.getSession();</p><p> sess
105、ion.save(entity);</p><p> return entity;</p><p> 在TopicAction找到參數(shù)action等于add時所調(diào)用的方法addTopic (),它只是把從topic表單轉(zhuǎn)化成的topic類做為參數(shù)傳給了TopicDAO的save()方法。在由這個方法向數(shù)據(jù)庫添加課題信息,如下所示:</p><p> 如果添加成
106、功頁面會被被重新加載回頁面顯示出來topic.action的URL。</p><p> 這樣就在頁面做一次提交時它訪問了二次TopicAction,第一次的作用是向數(shù)據(jù)庫中添加信息,隨后又把所添加的課題信息取出來顯示給用戶,同樣TopicAction還只是調(diào)用TopicDAO,</p><p> TopicAction取出從TopicDAO中數(shù)據(jù),在把它存到ActionContext里
107、,然后返回return mapping.findForward("success");在Strutsr的配置文件里返回頁是addTopic.jsp。課題信息都在這個頁中顯示出來。</p><p> 這是添加課題信息的整個過程,在這個過程中,有一部分是用于顯示課題信息的, </p><p> 課題信息的列表的最后一列可以對該條記錄做刪除和修改。刪除的鏈接地址是<
108、a href="topic_deleteTopic.action">刪除</a>它向Action的實現(xiàn)類提交了兩個參數(shù),一個是action=deleteTopic是固定不變的,另一個是該課題的id這是根據(jù)不同記錄取出來的。在TopicAction類中根據(jù)action的值可以找到與其相對的方法,</p><p> 在這個方法里得到頁面提交過來的用戶ID,把這個id存在Topi
109、c表中的實例中,傳給dao的delete ()方法,我們可以看到關(guān)于數(shù)據(jù)庫方面的操作都被封裝在Dao中。</p><p> 刪除用戶時和添加用戶一樣都是先得到一個Hibernate的Session,后調(diào)用它的delete()方法就可以了</p><p> 修改課題的信息時必須先把要修改的課題信息先查找出來,讓用戶可以直觀的根據(jù)以前的信息修改。這樣在點擊修改時也要傳給Action一個用戶
110、ID,用來查詢出課題信息,如下所示:</p><p> <a href="topic_modifyTopic.action&id=’topic.getId()’">編輯</a>">修改</a></p><p> 根據(jù)頁面的鏈接可以在Struts的配置文件里找到相應(yīng)的配置信息,</p><
111、p> 它調(diào)用了TopicAction類,返回到updateTopic,在UsserAction中同前面一樣也是根據(jù)action的參數(shù)來識別出調(diào)用相應(yīng)的方法,使在調(diào)用Dao的loadTopic()的方法后,得到一個Topic里面存著與此id相對應(yīng)的課題把它存在request里。</p><p> Hibernate在使用這個load()方法時比較特別,需要傳入實體類的class,和要查詢的用戶ID。得到的
112、返回值需要做一下強制類型轉(zhuǎn)換。</p><p> 顯示課題信息的頁面在updateTopic.jsp,如圖所示。</p><p> 圖5.5 修改課題信息頁面</p><p> 5.4 技術(shù)難點 </p><p> 5.4.1 中文亂碼</p><p> 由于瀏覽器中的參數(shù)傳遞是按字節(jié)傳送,因此英文和數(shù)字不
113、會有任何的問題,而中文漢字則由兩個字節(jié)組成.為了解決這個問題,使用了下面的兩種方法:</p><p> <%request.setCharacterEncoding(“utf-8”)%></p><p> <%request.getParameter("Password").getBytes("ISO-8849-1"),&quo
114、t;utf-8")%></p><p> 5.4.2 HQL 語言</p><p> 本系統(tǒng)中,所有對數(shù)據(jù)庫的操作都由Hibernate來完成,因此用到了大量的HQL語言.HQL是Hibernate設(shè)計的一套完整而實用高效的查詢語言,它通過面向?qū)ο蟮恼Z句結(jié)構(gòu)實現(xiàn)了和SQL語言類似的功能.如果向表里插入一條數(shù)據(jù)的話,直接調(diào)用save()方法即可,但如果要使用查詢功能的話,
115、我按照一般的SQL語句的方法:from 表名 where 條件,卻總是找不到預期的數(shù)據(jù),后來看書中發(fā)現(xiàn),from后跟的是表對應(yīng)映射的類文件名,而非表名,比如招聘表為invite,它對應(yīng)的類為Invite.java,所以在from后要根Invite而不是invite.</p><p><b> 6 測 試</b></p><p> 6.1 常用的測試方法</
116、p><p> 測試在整個軟件開發(fā)過程中起著至關(guān)重要的作用,軟件測試對于保證一個軟件的可靠性是極為重要的。測試占據(jù)整個軟件生命周期的75%左右,可見它的重要性。特別是在面對一個龐大而復雜的系統(tǒng),軟件測試就能充分的發(fā)揮它的作用,因為伴隨著測試,我們會發(fā)現(xiàn)軟件中存在的各種各樣的問題。從而,盡快地解決問題。在開發(fā)一個系統(tǒng)的各個階段都不可避免地會發(fā)生這樣或那樣的問題,所以在每一個開發(fā)的過程中的各個階段都要對軟件進行測試,軟件
117、測試的目標是盡可能地發(fā)現(xiàn)軟件中的錯誤,以便對其進行修改。</p><p> 測試包括單元測試和集成測試。單元測試是把一個模塊作為獨立的程序單元進行測試,以保證它能夠正確執(zhí)行規(guī)定的功能,單元測試是編碼和單元測試階段的任務(wù)。集成測試是將已經(jīng)通過徹底測試的模塊組裝起來,以形成一個系統(tǒng)或軟件產(chǎn)品,集成測試主要使用黑盒測試法對系統(tǒng)進行功能測試,集成測試的主要任務(wù)是檢查和排除模塊接口錯誤。全局數(shù)據(jù)結(jié)構(gòu)錯誤。模塊中某些遺漏的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于jsp的畢業(yè)設(shè)計--選題系統(tǒng)的設(shè)計與實現(xiàn)
- 基于jsp的畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn) (2)
- 基于jsp的選題系統(tǒng)的設(shè)計與實現(xiàn)
- 基于jsp的bbs系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 基于jsp的bbs系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計 基于web的畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn)
- 基于jsp的bbs系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 基于web的畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計-基于jsp的手機營銷系統(tǒng)的設(shè)計與實現(xiàn)
- 基于jsp的atm系統(tǒng)的設(shè)計與實現(xiàn)-畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計---基于jsp網(wǎng)上書店系統(tǒng)的設(shè)計與實現(xiàn)
- 【畢業(yè)設(shè)計】基于jsp藥店管理系統(tǒng)設(shè)計的開發(fā)與實現(xiàn)
- 【畢業(yè)設(shè)計】基于jsp藥店管理系統(tǒng)設(shè)計的開發(fā)與實現(xiàn)
- 基于Web的畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 畢業(yè)設(shè)計選題系統(tǒng)設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計選題系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于jsp的工資管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計--基于javaee的畢業(yè)設(shè)計選題測試及管理系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計(論文)基于jsp技術(shù)的網(wǎng)上花店系統(tǒng)設(shè)計與實現(xiàn)
- 基于jsp班級信息管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
評論
0/150
提交評論