畢業(yè)論文-基于JSP的教師管理模塊的設(shè)計與實現(xiàn)_第1頁
畢業(yè)論文-基于JSP的教師管理模塊的設(shè)計與實現(xiàn)_第2頁
畢業(yè)論文-基于JSP的教師管理模塊的設(shè)計與實現(xiàn)_第3頁
畢業(yè)論文-基于JSP的教師管理模塊的設(shè)計與實現(xiàn)_第4頁
畢業(yè)論文-基于JSP的教師管理模塊的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

太原理工大學(xué)畢業(yè)設(shè)計(論文)用紙中文翻譯將Servlet和JSP組合使用Servlet和JSP技術(shù)是用Java開發(fā)服務(wù)器端應(yīng)用的主要技術(shù),是開發(fā)商務(wù)應(yīng)用表示端的標(biāo)準(zhǔn)。Java開發(fā)者喜歡使用它有多種原因,其一是對于已經(jīng)熟悉Java語言的開發(fā)者來說這個技術(shù)容易學(xué)習(xí);其二是Java把“一次編寫,到處運行”的理念帶入到Web應(yīng)用中,實現(xiàn)了“一次編寫,到處實現(xiàn)”。而且更為重要的是,如果遵循一些良好的設(shè)計原則的話,就可以把表示和內(nèi)容相分離,創(chuàng)造出高質(zhì)量的、可以復(fù)用的、易于維護和修改的應(yīng)用程序。比方說,在HTML文檔中如果嵌入過多的Java代碼(scriptlet),就會導(dǎo)致開發(fā)出來的應(yīng)用非常復(fù)雜、難以閱讀、不容易復(fù)用,而且對以后的維護和修改也會造成困難。事實上,在CSDN的JSP/Servlet論壇中,經(jīng)??梢钥吹揭恍┨釂枺a很長,可以邏輯卻不是很清晰,大量的HTML和Java代碼混雜在一起,讓人看得一頭霧水。這就是隨意開發(fā)的弊端。早期的動態(tài)網(wǎng)頁主要采用CGI(CommonGatewayInterface,公共網(wǎng)關(guān)接口)技術(shù),你可以使用不同的語言編寫CGI程序,如VB、C/C++或Delphi等。雖然CGI技術(shù)發(fā)展成熟且功能強大,但由于編程困難、效率低下、修改復(fù)雜等缺點,所以有逐漸被取代的趨勢。在所有的新技術(shù)中,JSP/Servlet具備更高效、更容易編程、功能更強、更安全和具有良好的可移植性,因而被許多人認為是未來最有發(fā)展前途的動態(tài)網(wǎng)站技術(shù)。與CGI相似,Servlet支持請求/響應(yīng)模型。當(dāng)一個客戶向服務(wù)器遞交一個請求時,服務(wù)器把請求送給Servlet,Servlet負責(zé)處理請求并生成響應(yīng),然后送給服務(wù)器,再由服務(wù)器發(fā)送給客戶。與CGI不同的是,Servlet沒有生成新的進程,而是與HTTPServer處于同一進程中。它通過使用線程技術(shù),減小了服務(wù)器的開銷。Servlet處理請求的過程是這樣的:當(dāng)收到來自客戶端的請求后,調(diào)用service方法,該方法中Servlet先判斷到來的請求是什么類型的(GET/POST/HEAD…),然后調(diào)用相應(yīng)的處理方法(doGet/doPost/doHead…)并生成響應(yīng)。別看這么復(fù)雜,其實簡單說來Servlet就是一個Java類。與一般類的不同之處是,這個類運行在一個Servlet容器內(nèi),可以提供session管理和對象生命周期管理。因而當(dāng)你使用Servlet的時候,你可以得到Java平臺的所有好處,包括安全性管理、使用JDBC訪問數(shù)據(jù)庫以及跨平臺的能力。而且,Servlet使用線程,因而可以開發(fā)出效率更高的Web應(yīng)用。JSP技術(shù)是J2EE的一個關(guān)鍵技術(shù),它在更高一級的層次上抽象Servlet。它可以讓常規(guī)靜態(tài)HTML與動態(tài)產(chǎn)生的內(nèi)容相結(jié)合,看起來像一個HTML網(wǎng)頁,卻作為Servlet來運行?,F(xiàn)在有許多商業(yè)應(yīng)用服務(wù)器支持JSP技術(shù),比如BEAWebLogic、IBMWebSphere、JRun等等。使用JSP比用Servlet更簡單。如果你有一個支持JSP的Web服務(wù)器,并且有一個JSP文件,你可以把它放倒任何靜態(tài)HTML文件可以放置的位置,不用編譯,不用打包,也不用進行ClassPath的設(shè)置,就可以像訪問普通網(wǎng)頁那樣訪問它,服務(wù)器會自動幫你做好其他的工作。JSP文件看起來就像一個普通靜態(tài)HTML文件,只不過里面包含了一些Java代碼。它使用.jsp的后綴,用來告訴服務(wù)器這個文件需要特殊的處理。當(dāng)我們訪問一個JSP頁面的時候,這個文件首先會被JSP引擎翻譯為一個Java源文件,其實就是一個Servlet,并進行編譯,然后像其他Servlet一樣,由Servlet引擎來處理。Servlet引擎裝載這個類,處理來自客戶的請求,并把結(jié)果返回給客戶,如下圖所示:圖1:調(diào)用JSP頁面的流程以后再有客戶訪問這個頁面的時候,只要該文件沒有發(fā)生過更改,JSP引擎就直接調(diào)用已經(jīng)裝載的Servlet。如果已經(jīng)做過修改的話,那就會再次執(zhí)行以上過程,翻譯、編譯并裝載。其實這就是所謂的“第一人懲罰”。因為首次訪問的時候要執(zhí)行一系列以上的過程,所以會耗費一些時間;以后的訪問就不會這樣了。Javaservlet提供了一種強有力的API,用這個API可以訪問關(guān)于請求、會話和應(yīng)用程序的所有信息。將servlet和JSP頁面組合起來使用,可以把應(yīng)用程序的邏輯部分和外觀呈現(xiàn)部分清楚地分開;換句話,利用這個方式可以對模型、視圖和控制器這三種角色分別使用最合適的組件類型。Servlet、過濾器和監(jiān)聽器Servlet是一種Java類,它使得服務(wù)器的功能可擴展至處理請求和生成應(yīng)答。它是用ServletAPI定義的類和接口實現(xiàn)的。API由兩個程序包組成:jvavax.servlet程序包包含獨立于協(xié)議的類和接口,而javax.servlet.http程序包則提供HTTP特定的擴展的實用程序類。Servlet的實質(zhì)是實現(xiàn)了接口javax.servlet.Servlet的類,實現(xiàn)是直接完成或通過擴展某個支持類來完成的。該接口定義了Web容器用來管理servlet和與之交互的方法。用于處理HTTP請求的servlet一般情況下都會擴展javax.servlet.http.HttpServlet類。該類實現(xiàn)了Servlet接口,并提供了使用HTTP處理的附加方法。Servlet的生命周期Web容器管理servlet生命周期的所有方面。它根據(jù)需要創(chuàng)建servlet類的實例、將請求傳遞給實例進行處理,最終刪除實例。對于HttpServlet來說,容器會在servlet生命周期的適當(dāng)時間調(diào)用方法。除了doGet()和doPost()方法之外,還有一些對應(yīng)于其他HTTP方法的方法:doDelete()、doHead()、doOptiongs()、doPut()和doTrace()。一般情況下不用實現(xiàn)這些方法,因為HttpServlet類已經(jīng)用適用于大多數(shù)servlet的方法考慮到了HEAD、OPTIONS和TRACE請求,而且DELETE和PUT這兩種HTTP方法很少用在Web應(yīng)用程序中。容器只為每個Servlet創(chuàng)建一個實例非常重要。這意味著servlet必須是線程安全的—即,能夠同時處理多個請求,每個處理都通過servlet代碼作為單獨的線程來執(zhí)行。如果只在init()和destroy()方法中修改參考的對象,而且只在請求處理方法中讀取他們,那么不用喪失任何細節(jié)就可以滿足關(guān)于實例變量的這個要求。編譯和安裝servlet要編譯servlet,必須首先確保JAR文件包含著CLASSPATH環(huán)境變量中所有ServletAPI類。該JAR文件將隨所有的Web容器一起發(fā)布。Tomcat中包含了一個名為servlet.jar的JAR文件,位于common/lib目錄中。在Windows平臺中,應(yīng)在CLASSPATH中包含JAR文件。讀取請求傳遞到doGet()和doPost()方法的參數(shù)之一是實現(xiàn)了HttpServletRequest接口的對象。該接口定義的方法可提供對關(guān)于請求的許多信息的訪問。生成應(yīng)答除應(yīng)答對象之外,容器還將實現(xiàn)HttpServletRequest接口的對象作為icanshu傳遞給doGet()和doPost()方法。該接口定義了為應(yīng)答行為體獲取數(shù)序程序或流的方法。它還定義了設(shè)置應(yīng)答狀態(tài)代碼和首部的方法。使用過濾器和監(jiān)聽器Servlet規(guī)范servlet內(nèi)定義了兩種組件類型:過濾器和監(jiān)聽器。這兩種類型是在Servlet2.3規(guī)范中引入的,因此,如果你使用的是不支持該版本規(guī)范的容器,恐怕就不能繼續(xù)學(xué)習(xí)了。過濾器過濾器是一種組件,可以解釋對servlet、JSP頁面或靜態(tài)頁面的請求以及發(fā)送給客戶端之前的應(yīng)答。這樣可以很容易地將應(yīng)用于所有請求的任務(wù)集中在一起,例如訪問控制、登錄和內(nèi)容的開銷或應(yīng)用提供的服務(wù)等。過濾器對請求與應(yīng)答的行為體和首部具有完全訪問權(quán)限,因此還可以執(zhí)行各種轉(zhuǎn)換。例如,如果Accept-Language請求首部指出客戶端可以處理壓縮的應(yīng)答,那么過濾器就可以壓縮應(yīng)答的行為體。過濾器可以應(yīng)用在特定servlet上,或匹配某種URL模式的所有請求上,例如以相同的路徑元素開頭或具有相同擴展名的URL。監(jiān)聽器監(jiān)聽器允許應(yīng)用程序?qū)μ囟ㄊ录龀龌貞?yīng)。Servlet2.3之前,只能處理會話屬性綁定事件(在添加對象或從會話中刪除對象時)。實現(xiàn)監(jiān)聽器的方式是用保存為會話屬性(使用HttpSession.setAttribute()方法)的對象實現(xiàn)HttpSessionBinding-Listener接口。隨著Servlet規(guī)范的2.3版本中新接口的引入,可以為servlet環(huán)境和會話生命周期事件以及激活和鈍化事件(容器用來暫時將會話狀態(tài)保存在磁盤上或?qū)捯浦驳搅硪粋€服務(wù)器上)創(chuàng)建監(jiān)聽器。使用新的會話屬性事件監(jiān)聽器還可以在一個位置上處理所有會話的屬性綁定事件,而不是在每個會話中防止單獨的監(jiān)聽器對象。新類型的監(jiān)聽器遵循的是標(biāo)準(zhǔn)Java事件模型。換句話說,監(jiān)聽器是實現(xiàn)了一個或多個監(jiān)聽器接口的類。接口定義的是事件相應(yīng)的方法。當(dāng)應(yīng)用程序啟動是,容易會注冊監(jiān)聽器類,然后該容器會在合適的事件調(diào)用那些事件方法。使用監(jiān)聽器初始化共享資源Bean一般都有需要在使用之前進行初始化。例如,它們可能需要對數(shù)據(jù)庫或某些其他外部數(shù)據(jù)源的引用,還可能在內(nèi)存中創(chuàng)建一個初始消息緩存,以便即使是第一個請求數(shù)據(jù)也可以提供更快的訪問。可以在需要共享資源的servlet和JSP頁面中包含初始化共享資源的代碼,但是更標(biāo)準(zhǔn)的方法是在一個位置放置所有這些代碼,并在假設(shè)資源已經(jīng)初始化和可用的情況下,使應(yīng)用程序的其他部分可以正常工作。應(yīng)用程序生命周期監(jiān)聽器是此類資源初始化的絕好工具。此類監(jiān)聽器實現(xiàn)了javax.servlet.ServletContextListener接口,當(dāng)應(yīng)用程序啟動和關(guān)閉時會由容器調(diào)用該接口的方法。為每個任務(wù)選擇正確的組件類型在之前介紹的項目公告牌應(yīng)用程序是相當(dāng)復(fù)雜的應(yīng)用程序。頁面的一般都是純粹的控制器和商務(wù)邏輯處理,它訪問數(shù)據(jù)庫以對用戶進行身份驗證,而且多數(shù)頁面都需要訪問控制。在現(xiàn)實生活中,它可能會包含更多的頁面,例如,用于訪問共享文檔檔案、事件表的頁面和用于管理的一組頁面等。由于應(yīng)用程序在不斷地發(fā)展變化,因此可能變得很難作為純JSP應(yīng)用程序來維護。例如,很容易忘記在新頁面中包含訪問控制代碼。很明顯,這種應(yīng)用程序可以從使用JSP頁面與組件類型的組合中受益,其中組件類型由用于MVC角色的servlet規(guī)范所定義。下面看一下主要的要求,并了解如何將他們映射到適當(dāng)?shù)慕M件類型上:數(shù)據(jù)庫訪問應(yīng)該是抽象的,從而避免料接應(yīng)用程序中多個部分的特定數(shù)據(jù)模式或數(shù)據(jù)庫引擎:模型角色中的bean可以用來完成這種認知。數(shù)據(jù)庫訪問bean必須在應(yīng)用程序啟動時可用于所有其他的部分:應(yīng)用程序生命周期時間監(jiān)聽器是用了該任務(wù)的完美的組件類型。只有通過驗證的用戶才允許使用應(yīng)用程序:過濾器可以完成訪問控制以滿足該要求。用Java代碼進行請求處理效果最佳:servlet作為控制器正符合需要。必須很容易改編外觀呈現(xiàn):這正是JSP的反光點,也就是作為視圖。將servlet、監(jiān)聽器和過濾器混合起來,就將JSP頁面對復(fù)雜邏輯的需求降到了最低。將這些代碼放置到Java類中后,就可以使用普通的Java編譯程序和調(diào)試程序來修復(fù)潛在的問題。使用servlet集中處理請求將servlet作為所有應(yīng)用程序請求的公共入口時,可以獲得對應(yīng)用程序頁面流的整體控制。Servlet可以根據(jù)所請求行為的結(jié)果來決定要生成的應(yīng)答類型,例如,為所有失敗的請求返回公共的錯誤頁面,或者根據(jù)發(fā)出請求的客戶端返回不同的應(yīng)答等。在某些使用程序類的幫助下,servlet還可以提供諸如輸入驗證、J18N準(zhǔn)備之類的服務(wù),而且通常會鼓勵使用更有效率的方法來請求處理。當(dāng)使用servlet作為控制器時,必須處理下列基本要求:所有處理請求必須傳遞到單獨的控制器servlet中。Servlet必須能夠區(qū)分請求,以便進行不同類型的處理。下面是其他一些你可能希望支持的功能,即使并非所有應(yīng)用程序都要求:擴展應(yīng)用程序以便以更靈活的方式支持新類型的請求處理。在不修改代碼的情況下改變應(yīng)用程序頁面流的機制。當(dāng)然,你可以自己開發(fā)滿足這些要求的servlet,但是已經(jīng)有開源式s

溫馨提示

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

評論

0/150

提交評論