freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

jsp技術(shù)網(wǎng)站設(shè)計(jì)外文文獻(xiàn)及翻譯:將servlet和jsp組合使用-資料下載頁

2025-05-30 18:15本頁面
  

【正文】 HTML與動(dòng)態(tài)產(chǎn)生的內(nèi)容相結(jié)合,看起來像一個(gè)HTML網(wǎng)頁,卻作為Servlet來運(yùn)行?,F(xiàn)在有許多商業(yè)應(yīng)用服務(wù)器支持JSP技術(shù),比如BEA WebLogic、IBM WebSphere、 JRun等等。使用JSP比用Servlet更簡(jiǎn)單。如果你有一個(gè)支持JSP的Web服務(wù)器,并且有一個(gè)JSP文件,你可以把它放倒任何靜態(tài)HTML文件可以放置的位置,不用編譯,不用打包,也不用進(jìn)行ClassPath的設(shè)置,就可以像訪問普通網(wǎng)頁那樣訪問它,服務(wù)器會(huì)自動(dòng)幫你做好其他的工作。JSP 文件看起來就像一個(gè)普通靜態(tài)HTML文件,只不過里面包含了一些Java代碼。,用來告訴服務(wù)器這個(gè)文件需要特殊的處理。當(dāng)我們?cè)L問一個(gè)JSP頁面的時(shí)候,這個(gè)文件首先會(huì)被JSP引擎翻譯為一個(gè)Java源文件,其實(shí)就是一個(gè)Servlet,并進(jìn)行編譯,然后像其他Servlet一樣,由Servlet引擎來處理。Servlet引擎裝載這個(gè)類,處理來自客戶的請(qǐng)求,并把結(jié)果返回給客戶,如下圖所示:圖1: 調(diào)用JSP頁面的流程以后再有客戶訪問這個(gè)頁面的時(shí)候,只要該文件沒有發(fā)生過更改,JSP引擎就直接調(diào)用已經(jīng)裝載的Servlet。如果已經(jīng)做過修改的話,那就會(huì)再次執(zhí)行以上過程,翻譯、編譯并裝載。其實(shí)這就是所謂的“第一人懲罰”。因?yàn)槭状卧L問的時(shí)候要執(zhí)行一系列以上的過程,所以會(huì)耗費(fèi)一些時(shí)間;以后的訪問就不會(huì)這樣了。Java servlet提供了一種強(qiáng)有力的API,用這個(gè)API可以訪問關(guān)于請(qǐng)求、會(huì)話和應(yīng)用程序的所有信息。將servlet和JSP頁面組合起來使用,可以把應(yīng)用程序的邏輯部分和外觀呈現(xiàn)部分清楚地分開;換句話,利用這個(gè)方式可以對(duì)模型、視圖和控制器這三種角色分別使用最合適的組件類型。Servlet、過濾器和監(jiān)聽器Servlet是一種Java類,它使得服務(wù)器的功能可擴(kuò)展至處理請(qǐng)求和生成應(yīng)答。它是用Servlet API定義的類和接口實(shí)現(xiàn)的。API由兩個(gè)程序包組成:。,實(shí)現(xiàn)是直接完成或通過擴(kuò)展某個(gè)支持類來完成的。該接口定義了Web容器用來管理servlet和與之交互的方法。該類實(shí)現(xiàn)了Servlet接口,并提供了使用HTTP處理的附加方法。Servlet的生命周期Web容器管理servlet生命周期的所有方面。它根據(jù)需要?jiǎng)?chuàng)建servlet類的實(shí)例、將請(qǐng)求傳遞給實(shí)例進(jìn)行處理,最終刪除實(shí)例。對(duì)于HttpServlet來說,容器會(huì)在servlet生命周期的適當(dāng)時(shí)間調(diào)用方法。除了doGet()和doPost()方法之外,還有一些對(duì)應(yīng)于其他HTTP方法的方法:doDelete()、doHead()、doOptiongs()、doPut()和doTrace()。一般情況下不用實(shí)現(xiàn)這些方法,因?yàn)镠ttpServlet類已經(jīng)用適用于大多數(shù)servlet的方法考慮到了HEAD、OPTIONS和TRACE請(qǐng)求,而且DELETE和PUT這兩種HTTP方法很少用在Web應(yīng)用程序中。容器只為每個(gè)Servlet創(chuàng)建一個(gè)實(shí)例非常重要。這意味著servlet必須是線程安全的—即,能夠同時(shí)處理多個(gè)請(qǐng)求,每個(gè)處理都通過servlet代碼作為單獨(dú)的線程來執(zhí)行。如果只在init()和destroy()方法中修改參考的對(duì)象,而且只在請(qǐng)求處理方法中讀取他們,那么不用喪失任何細(xì)節(jié)就可以滿足關(guān)于實(shí)例變量的這個(gè)要求。編譯和安裝servlet要編譯servlet,必須首先確保JAR文件包含著CLASSPATH環(huán)境變量中所有Servlet API類。該JAR文件將隨所有的Web容器一起發(fā)布。,位于mon/lib目錄中。在Windows平臺(tái)中,應(yīng)在CLASSPATH中包含JAR文件。讀取請(qǐng)求傳遞到doGet()和doPost()方法的參數(shù)之一是實(shí)現(xiàn)了HttpServletRequest接口的對(duì)象。該接口定義的方法可提供對(duì)關(guān)于請(qǐng)求的許多信息的訪問。生成應(yīng)答除應(yīng)答對(duì)象之外,容器還將實(shí)現(xiàn)HttpServletRequest接口的對(duì)象作為icanshu傳遞給doGet()和doPost()方法。該接口定義了為應(yīng)答行為體獲取數(shù)序程序或流的方法。它還定義了設(shè)置應(yīng)答狀態(tài)代碼和首部的方法。使用過濾器和監(jiān)聽器Servlet規(guī)范servlet內(nèi)定義了兩種組件類型:過濾器和監(jiān)聽器。這兩種類型是在Servlet ,因此,如果你使用的是不支持該版本規(guī)范的容器,恐怕就不能繼續(xù)學(xué)習(xí)了。過濾器過濾器是一種組件,可以解釋對(duì)servlet、JSP頁面或靜態(tài)頁面的請(qǐng)求以及發(fā)送給客戶端之前的應(yīng)答。這樣可以很容易地將應(yīng)用于所有請(qǐng)求的任務(wù)集中在一起,例如訪問控制、登錄和內(nèi)容的開銷或應(yīng)用提供的服務(wù)等。過濾器對(duì)請(qǐng)求與應(yīng)答的行為體和首部具有完全訪問權(quán)限,因此還可以執(zhí)行各種轉(zhuǎn)換。例如,如果AcceptLanguage請(qǐng)求首部指出客戶端可以處理壓縮的應(yīng)答,那么過濾器就可以壓縮應(yīng)答的行為體。過濾器可以應(yīng)用在特定servlet上,或匹配某種URL模式的所有請(qǐng)求上,例如以相同的路徑元素開頭或具有相同擴(kuò)展名的URL。監(jiān)聽器監(jiān)聽器允許應(yīng)用程序?qū)μ囟ㄊ录龀龌貞?yīng)。Servlet ,只能處理會(huì)話屬性綁定事件(在添加對(duì)象或從會(huì)話中刪除對(duì)象時(shí))。實(shí)現(xiàn)監(jiān)聽器的方式是用保存為會(huì)話屬性(()方法)的對(duì)象實(shí)現(xiàn)HttpSessionBindingListener接口。,可以為servlet環(huán)境和會(huì)話生命周期事件以及激活和鈍化事件(容器用來暫時(shí)將會(huì)話狀態(tài)保存在磁盤上或?qū)?huì)話移植到另一個(gè)服務(wù)器上)創(chuàng)建監(jiān)聽器。使用新的會(huì)話屬性事件監(jiān)聽器還可以在一個(gè)位置上處理所有會(huì)話的屬性綁定事件,而不是在每個(gè)會(huì)話中防止單獨(dú)的監(jiān)聽器對(duì)象。新類型的監(jiān)聽器遵循的是標(biāo)準(zhǔn)Java事件模型。換句話說,監(jiān)聽器是實(shí)現(xiàn)了一個(gè)或多個(gè)監(jiān)聽器接口的類。接口定義的是事件相應(yīng)的方法。當(dāng)應(yīng)用程序啟動(dòng)是,容易會(huì)注冊(cè)監(jiān)聽器類,然后該容器會(huì)在合適的事件調(diào)用那些事件方法。使用監(jiān)聽器初始化共享資源Bean一般都有需要在使用之前進(jìn)行初始化。例如,它們可能需要對(duì)數(shù)據(jù)庫或某些其他外部數(shù)據(jù)源的引用,還可能在內(nèi)存中創(chuàng)建一個(gè)初始消息緩存,以便即使是第一個(gè)請(qǐng)求數(shù)據(jù)也可以提供更快的訪問??梢栽谛枰蚕碣Y源的servlet和JSP頁面中包含初始化共享資源的代碼,但是更標(biāo)準(zhǔn)的方法是在一個(gè)位置放置所有這些代碼,并在假設(shè)資源已經(jīng)初始化和可用的情況下,使應(yīng)用程序的其他部分可以正常工作。應(yīng)用程序生命周期監(jiān)聽器是此類資源初始化的絕好工具。,當(dāng)應(yīng)用程序啟動(dòng)和關(guān)閉時(shí)會(huì)由容器調(diào)用該接口的方法。為每個(gè)任務(wù)選擇正確的組件類型在之前介紹的項(xiàng)目公告牌應(yīng)用程序是相當(dāng)復(fù)雜的應(yīng)用程序。頁面的一般都是純粹的控制器和商務(wù)邏輯處理,它訪問數(shù)據(jù)庫以對(duì)用戶進(jìn)行身份驗(yàn)證,而且多數(shù)頁面都需要訪問控制。在現(xiàn)實(shí)生活中,它可能會(huì)包含更多的頁面,例如,用于訪問共享文檔檔案、事件表的頁面和用于管理的一組頁面等。由于應(yīng)用程序在不斷地發(fā)展變化,因此可能變得很難作為純JSP應(yīng)用程序來維護(hù)。例如,很容易忘記在新頁面中包含訪問控制代碼。很明顯,這種應(yīng)用程序可以從使用JSP頁面與組件類型的組合中受益,其中組件類型由用于MVC角色的servlet規(guī)范所定義。下面看一下主要的要求,并了解如何將他們映射到適當(dāng)?shù)慕M件類型上:l 數(shù)據(jù)庫訪問應(yīng)該是抽象的,從而避免料接應(yīng)用程序中多個(gè)部分的特定數(shù)據(jù)模式或數(shù)據(jù)庫引擎:模型角色中的bean可以用來完成這種認(rèn)知。l 數(shù)據(jù)庫訪問bean必須在應(yīng)用程序啟動(dòng)時(shí)可用于所有其他的部分:應(yīng)用程序生命周期時(shí)間監(jiān)聽器是用了該任務(wù)的完美的組件類型。l 只有通過驗(yàn)證的用戶才允許使用應(yīng)用程序:過濾器可以完成訪問控制以滿足該要求。l 用Java代碼進(jìn)行請(qǐng)求處理效果最佳:servlet作為控制器正符合需要。l 必須很容易改編外觀呈現(xiàn):這正是JSP的反光點(diǎn),也就是作為視圖。將servlet、監(jiān)聽器和過濾器混合起來,就將JSP頁面對(duì)復(fù)雜邏輯的需求降到了最低。將這些代碼放置到Java類中后,就可以使用普通的Java編譯程序和調(diào)試程序來修復(fù)潛在的問題。使用servlet集中處理請(qǐng)求將servlet作為所有應(yīng)用程序請(qǐng)求的公共入口時(shí),可以獲得對(duì)應(yīng)用程序頁面流的整體控制。Servlet可以根據(jù)所請(qǐng)求行為的結(jié)果來決定要生成的應(yīng)答類型,例如,為所有失敗的請(qǐng)求返回公共的錯(cuò)誤頁面,或者根據(jù)發(fā)出請(qǐng)求的客戶端返回不同的應(yīng)答等。在某些使用程序類的幫助下,servlet還可以提供諸如輸入驗(yàn)證、J18N準(zhǔn)備之類的服務(wù),而且通常會(huì)鼓勵(lì)使用更有效率的方法來請(qǐng)求處理。當(dāng)使用servlet作為控制器時(shí),必須處理下列基本要求:l 所有處理請(qǐng)求必須傳遞到單獨(dú)的控制器servlet中。l Servlet必須能夠區(qū)分請(qǐng)求,以便進(jìn)行不同類型的處理。下面是其他一些你可能希望支持的功能,即使并非所有應(yīng)用程序都要求:l 擴(kuò)展應(yīng)用程序以便以更靈活的方式支持新類型的請(qǐng)求處理。l 在不修改代碼的情況下改變應(yīng)用程序頁面流的機(jī)制。當(dāng)然,你可以自己開發(fā)滿足這些要求的servlet,但是已經(jīng)有開源式servlet了,他們可以滿足所有這些要求,甚至還有更多的功能。將應(yīng)用程序請(qǐng)求映射到servlet使用控制器servlet的第一個(gè)要求是所有請(qǐng)求必須都經(jīng)過該servlet。該要求可以通過多種方式來滿足。如果你以前曾經(jīng)使用過servlet,那么你可能習(xí)慣于用以/myApp/servlet開頭的URI來調(diào)用servlet。這是由Sun公司的Java Web Server(JWS)所引入的一個(gè)約定,JWS是在推出標(biāo)準(zhǔn)API之前第一個(gè)支持servlet的產(chǎn)品。今天,大部分servlet容器都支持這個(gè)約定,即使servlet規(guī)范中并沒有正式的定義。17
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1