【正文】
家族的一員,秉承了Java技術(shù)的“一次編寫(xiě),隨處可用(Write Once,Rum Anywhere)”的特性,可以運(yùn)行于大多數(shù)流行的操作系統(tǒng)平臺(tái)及Web服務(wù)器,這種與服務(wù)器硬件和操作系統(tǒng)平臺(tái)的無(wú)關(guān)性是JSP相對(duì)于其它動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)最大的一個(gè)優(yōu)點(diǎn)。如同Microsoft的JSP技術(shù)可以通過(guò)ActiveX/COM組件來(lái)擴(kuò)展功能一樣,JSP可以通過(guò)JavaBean和EJB(Enterprise JavaBean)以及自定義的標(biāo)記來(lái)擴(kuò)展功能。JSP提供了一些隱含對(duì)象。利用JSP提供的這些隱含對(duì)象,可以使腳本功能更加強(qiáng)大,并且編程更加容易、方便。 SQLSERVER 2000 數(shù)據(jù)庫(kù)SQL Server是由Microsoft開(kāi)發(fā)和推廣的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和AshtonTate三家公司共同開(kāi)發(fā)的,并于1988年推出了第一個(gè)OS/2版本。 SQL Server 特點(diǎn):1.真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。 3.豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。SQL Server也可以很好地與Microsoft BackOffice產(chǎn)品集成。 6.對(duì)Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)布到Web頁(yè)面上。 系統(tǒng)數(shù)據(jù)庫(kù)連接JDBC技術(shù)是Java DataBase Connectivity的縮寫(xiě),它是SUN公司提供的一種支持基本SQL功能的通用的應(yīng)用程序接口(Application Programming Interface)。通過(guò)這些類(lèi)和接口,程序開(kāi)發(fā)人員可以在Java語(yǔ)言中方便地建立與數(shù)據(jù)庫(kù)的鏈接,通過(guò)執(zhí)行相應(yīng)SQL語(yǔ)句,完成對(duì)不同數(shù)據(jù)庫(kù)的訪問(wèn)。不但如此,使用Java語(yǔ)言編寫(xiě)的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上開(kāi)發(fā)不同的應(yīng)用程序。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫(kù)功能模塊的層次上提供一個(gè)統(tǒng)一的用戶界面。很多可視化的Java開(kāi)發(fā)工具,如Visual Age For Java、Visual Caf233。另一種使用JDBC API 的方式為,用戶程序可以提供一個(gè)界面(如菜單等)讓用戶選擇對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作,選中一個(gè)任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。,瀏覽器端程序要訪問(wèn)數(shù)據(jù)庫(kù),首先通過(guò)中間件,然后由中間件對(duì)數(shù)據(jù)庫(kù)操作權(quán)限進(jìn)行認(rèn)證,認(rèn)證通過(guò)才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。這樣,在用戶端輸入的用戶名和密碼,可以通過(guò)加密算法進(jìn)行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進(jìn)行解密認(rèn)證,然后再進(jìn)行數(shù)據(jù)庫(kù)的存取操作,數(shù)據(jù)庫(kù)存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層”,而”中間層”將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)。 JDBC的三層模型因?yàn)椤敝虚g層”可以進(jìn)行對(duì)訪問(wèn)的控制并協(xié)同數(shù)據(jù)庫(kù)的更新,并且可以使用一個(gè)易用的高層API,這個(gè)API可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫(kù)的溝通橋梁。二、將SQL語(yǔ)句傳遞給數(shù)據(jù)庫(kù)。當(dāng)JDBC要與數(shù)據(jù)庫(kù)建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序,()即是在執(zhí)行此項(xiàng)工作。完成載入驅(qū)動(dòng)程序的步驟后,()靜態(tài)函數(shù),取得與數(shù)據(jù)庫(kù)間的連接對(duì)象。當(dāng)取得連接對(duì)象后,還必須取得Statement對(duì)象才能對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL指令。 對(duì)象,這個(gè)對(duì)象提供了一個(gè)存取SQL執(zhí)行結(jié)果的管道,以便通過(guò)它將表格數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出。: 數(shù)據(jù)庫(kù)的連接處理數(shù)據(jù)庫(kù)的連接處理具體實(shí)現(xiàn)如下://建立JDBC——ODBC橋。換言之,有了JDBC API,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專(zhuān)門(mén)寫(xiě)一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專(zhuān)門(mén)寫(xiě)一個(gè)程序,或?yàn)樵L問(wèn)Informix數(shù)據(jù)庫(kù)又編寫(xiě)另一個(gè)程序等等,程序員只需用JDBC API寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。Java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法。作為API,JDBC為程序開(kāi)發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類(lèi)型定義且高性能實(shí)現(xiàn)的接口。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。 JDBC 擴(kuò)展了 Java 的功能。隨著越來(lái)越多的程序員開(kāi)始使用Java 編程語(yǔ)言,對(duì)從 Java 中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。安裝和版本控制將大為簡(jiǎn)化。對(duì)于商務(wù)上的銷(xiāo)售信息服務(wù), Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。下列代碼段給出了以上三步的基本示例: Connection con = (jdbc:odbc:wombat,login, password); Statement stmt = (); ResultSet rs = (SELECT a, b, c FROM Table1); while (()) { int x = (a); String s = (b); float f = (c); } 上述代碼對(duì)基于JDBC的數(shù)據(jù)庫(kù)訪問(wèn)做了經(jīng)典的總結(jié)??蛻魬?yīng)用程序是系統(tǒng)中用戶與數(shù)據(jù)進(jìn)行交互的部件。中間件負(fù)責(zé)聯(lián)結(jié)客戶應(yīng)用程序與服務(wù)器管理程序,協(xié)同完成一個(gè)作業(yè),以滿足用戶查詢管理數(shù)據(jù)的要求。把傳統(tǒng)C/S模式中的服務(wù)器部分分解為一個(gè)數(shù)據(jù)服務(wù)器與一個(gè)或多個(gè)應(yīng)用服務(wù)器(Web服務(wù)器),從而構(gòu)成一個(gè)三層結(jié)構(gòu)的客戶服務(wù)器體系??蛻舻膽?yīng)用程序精簡(jiǎn)到一個(gè)通用的瀏覽器軟件,如Netscape瀏覽器將HTML代碼轉(zhuǎn)化成圖文并茂的網(wǎng)頁(yè)。這個(gè)后臺(tái)就是第二層的Web服務(wù)器。如果客戶機(jī)提交的請(qǐng)求包括數(shù)據(jù)的存取,Web服務(wù)器還需與數(shù)據(jù)庫(kù)服務(wù)器協(xié)同完成這一處理工作。 B/S模式的優(yōu)勢(shì) 首先它簡(jiǎn)化了客戶端。這樣不但可以節(jié)省客戶機(jī)的硬盤(pán)空間與內(nèi)存,而且使安裝過(guò)程更加簡(jiǎn)便、網(wǎng)絡(luò)結(jié)構(gòu)更加靈活。甚至與會(huì)者還可以把筆記本電腦聯(lián)上會(huì)議室的網(wǎng)絡(luò)插口,自己來(lái)查詢相關(guān)的數(shù)據(jù)。系統(tǒng)的開(kāi)發(fā)者無(wú)須再為不同級(jí)別的用戶設(shè)計(jì)開(kāi)發(fā)不同的客戶應(yīng)用程序了,只需把所有的功能都實(shí)現(xiàn)在Web服務(wù)器上,并就不同的功能為各個(gè)組別的用戶設(shè)置權(quán)限就可以了。現(xiàn)代企業(yè)面臨著日新月異的競(jìng)爭(zhēng)環(huán)境,對(duì)企業(yè)內(nèi)部運(yùn)作機(jī)制的更新與調(diào)整也變得逐漸頻繁。當(dāng)形勢(shì)變化時(shí),它無(wú)須再為每一個(gè)現(xiàn)有的客戶應(yīng)用程序升級(jí),而只需對(duì)Web服務(wù)器上的服務(wù)處理程序進(jìn)行修訂。如果一個(gè)公司有上千臺(tái)客戶機(jī),并且分布在不同的地點(diǎn),那么便于維護(hù)將會(huì)顯得更加重要。對(duì)于C/S模式,客戶應(yīng)用程序有自己特定的規(guī)格,使用者需要接受專(zhuān)門(mén)培訓(xùn)。無(wú)論是決策層還是操作層的人員都無(wú)需培訓(xùn),就可以直接使用。MIS系統(tǒng)維護(hù)的限制因素更少。這是C/S所無(wú)法實(shí)現(xiàn)的。這使得企業(yè)的大部分書(shū)面文件可以被電子文件取代,從而提高了企業(yè)的工作效率,使企業(yè)行政手續(xù)簡(jiǎn)化,節(jié)省人力物力。各軟件公司紛紛推出自己的Internet方案,基于Web的財(cái)務(wù)系統(tǒng)、基于Web的ERP。B/S模式的新穎與流行,和在某些方面相對(duì)于C/S的巨大改進(jìn),使B/S成了MIS系統(tǒng)平臺(tái)的首選。下面就對(duì)在線自測(cè)系統(tǒng)的設(shè)計(jì)進(jìn)行需求分析??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。(1) 經(jīng)濟(jì)可行性:主要是對(duì)項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià),本系統(tǒng)開(kāi)發(fā)經(jīng)費(fèi)在經(jīng)濟(jì)上是可以接受的,并且本系統(tǒng)實(shí)施后可以顯著提高工作效率,提高教學(xué)質(zhì)量。(2) 技術(shù)上的可行性:技術(shù)上的可行性分析主要分析技術(shù)條件能否順利完成開(kāi)發(fā)工作,硬、軟件能否滿足開(kāi)發(fā)者的需要等。Browser/Server體系結(jié)構(gòu)緊密的結(jié)合了Internet/Intranet技術(shù),是技術(shù)發(fā)展的大勢(shì)所趨,它把應(yīng)用系統(tǒng)帶入了一個(gè)嶄新的發(fā)展時(shí)代。它的靈活性、安全性和易用性為數(shù)據(jù)庫(kù)編程提供了良好的條件。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,價(jià)格越來(lái)越低,其硬件平臺(tái)完全能滿足此系統(tǒng)的需要。因此系統(tǒng)的開(kāi)發(fā)是完全可行的。這樣將不同的權(quán)限分給不同的角色。 系統(tǒng)應(yīng)該具備的基本功能針對(duì)管理員角色:☆ 管理員維護(hù):對(duì)現(xiàn)有管理員進(jìn)行管理和添加新的管理員?!?題庫(kù)管理:錄入新的試題和管理現(xiàn)有試題?!?考生管理:添加新的考生和管理現(xiàn)有的考生。☆ 考生分?jǐn)?shù)查看:對(duì)于已經(jīng)選擇題目參與過(guò)自測(cè)的考試分析進(jìn)行查看?!?在線考試:查自己自測(cè)的分?jǐn)?shù)。除了實(shí)現(xiàn)上述功能以外,在線自測(cè)系統(tǒng)還應(yīng)該具有友好、簡(jiǎn)潔的界面,安全性高,穩(wěn)定性強(qiáng)的特點(diǎn)。它應(yīng)該具有開(kāi)放性、方便性和靈活性。 運(yùn)行環(huán)境為了保證系統(tǒng)運(yùn)行的效率和可靠性,系統(tǒng)服務(wù)器端應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。其運(yùn)行要求如下:☆軟件環(huán)境:客戶端: Windows95/98/2000/XP,Internet Explorer(IE)等服務(wù)器端: Windows2000/XP,IE,JDK,Tomca等。開(kāi)發(fā)平臺(tái):My Eclipse☆硬件環(huán)境:服務(wù)器 CPU:PIII 500以上 ,內(nèi)存:256M以上客戶機(jī) CPU:P200MMX以上,內(nèi)存:32M以上 系統(tǒng)結(jié)構(gòu)圖根據(jù)需求分析,在線自測(cè)系統(tǒng)的結(jié)構(gòu)圖如下:在線自測(cè)系統(tǒng)管理員端管理員維護(hù)課程管理題庫(kù)管理試卷管理考生管理評(píng)分老師管理考生分?jǐn)?shù)查看 管理員端系統(tǒng)結(jié)構(gòu)圖在線自測(cè)系統(tǒng)管理員端管理員維護(hù)課程管理題庫(kù)管理試卷管理考生管理評(píng)分老師管理考生分?jǐn)?shù)查看 管理員端系統(tǒng)結(jié)構(gòu)圖在線自測(cè)系統(tǒng)考生端在線考試分?jǐn)?shù)查詢?cè)诰€自測(cè) 考生端系統(tǒng)結(jié)構(gòu)圖評(píng)分老師只能對(duì)學(xué)生所完成的自測(cè)題目進(jìn)行評(píng)分功能。下面就分如下幾個(gè)部分對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì):(1) 用戶個(gè)人信息設(shè)計(jì)(2)數(shù)據(jù)庫(kù)中表的設(shè)計(jì)(3)數(shù)據(jù)庫(kù)邏輯ER圖設(shè)計(jì)(4)功能模塊的詳細(xì)設(shè)計(jì)。用戶名要求不能為空、重復(fù),密碼輸入的兩次信息應(yīng)該一致,然后應(yīng)該實(shí)現(xiàn)用戶名密碼的修改,最后要求管理員對(duì)注冊(cè)用戶的維護(hù)操作。軟件測(cè)試就是在受控制的條件下對(duì)系統(tǒng)或應(yīng)用程序進(jìn)行操作并評(píng)價(jià)操作結(jié)果的過(guò)程,所謂控制條件應(yīng)包括正常條件與非正常條件。從本質(zhì)上說(shuō),軟件測(cè)試是探測(cè),在探測(cè)中發(fā)現(xiàn)軟件的毛病。為了解決這場(chǎng)危機(jī),軟件從業(yè)人員、專(zhuān)家和學(xué)者做出了大量的努力。有錯(cuò)是軟件的屬性,而且是無(wú)法改變的,因?yàn)檐浖怯扇藖?lái)完成的,所有由人做的工作都不會(huì)是完美無(wú)缺的。 軟件測(cè)試的重要性軟件測(cè)試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測(cè)試學(xué)僅處于運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。 事實(shí)上,對(duì)于軟件來(lái)講,不論采用什么技術(shù)和什么方法,軟件中仍然會(huì)有錯(cuò)。測(cè)試是所有工程學(xué)科的基本組成單元,是軟件開(kāi)發(fā)的重要部分。統(tǒng)計(jì)表明,在典型的軟件開(kāi)發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開(kāi)發(fā)總工作量的40%以上。如果把維護(hù)階段也考慮在內(nèi),討論整個(gè)軟件生存期時(shí),測(cè)試的成本比例也許會(huì)有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開(kāi)發(fā),乃至多次開(kāi)發(fā),其中必定還包含有許多測(cè)試工作。 軟件測(cè)試的方法測(cè)試在軟件開(kāi)發(fā)過(guò)程中一直都是備受關(guān)注的,即使在傳統(tǒng)的軟件工程中,也有一個(gè)明確、獨(dú)立的測(cè)試階段。測(cè)試已經(jīng)不僅僅局限于軟件開(kāi)發(fā)中的一個(gè)階段,它已經(jīng)開(kāi)始貫穿于整個(gè)軟件開(kāi)發(fā)過(guò)程,人們已經(jīng)開(kāi)始認(rèn)識(shí)到:測(cè)試開(kāi)始的時(shí)間越早,測(cè)試執(zhí)行的越頻繁,所帶來(lái)的整個(gè)軟件開(kāi)發(fā)成本的下降就會(huì)越多。結(jié) 論在我的程序設(shè)計(jì)過(guò)程中,我充分的體會(huì)到了“實(shí)踐出真知”這一點(diǎn),書(shū)本上的知識(shí)是不夠的,只有把理論與實(shí)踐相結(jié)合才能夠真正的學(xué)到知識(shí)。同時(shí),系統(tǒng)中還存在許多問(wèn)題,有待在日后的使用中發(fā)現(xiàn)和解決。雖然在開(kāi)始寫(xiě)程序之前我們做了多的準(zhǔn)備工作,但在真正的寫(xiě)程序時(shí)仍然發(fā)現(xiàn)許多問(wèn)題,有些問(wèn)題是分析時(shí)的疏漏,有些則是如果不做無(wú)論如何也想不到的。s relatively simple. You can build a JSP page using an XML document that will serve as the template for the output, then replace the portions that must be generated dynamically based on the underlying business logic. You use Java code, either written directly within the JSP page or called externally from the page, to generate the dynamic portions of the document. You are in control of how much of that document is generated. For example, you can use Java code to generate data between XML tags, to generate portions of the XML document tree (both tags and data), or even to generate the entire document.The Java code is removed from the page, processed into a servlet (known as the page servlet) and run by the Java application server as part of the request for the JSP page. The result is pure XML.A JSP technology overviewLet39。re going to keep it simple and focus on some of the basics. For more information, see Resources for links to additional