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

正文內(nèi)容

[工學(xué)]jaa程序設(shè)計(jì)基礎(chǔ)第13章:jsp技術(shù)基礎(chǔ)-資料下載頁(yè)

2025-01-19 11:16本頁(yè)面
  

【正文】 Add)。 if (bookId != null) { (bookId)。 BookDetails book = ()。 (bookId, book)。 % …… ? 在程序中使用了 (Add)來(lái)獲取 request中的一個(gè)變量 add的值,這個(gè)值是顧客加入購(gòu)物車(chē)的書(shū)的編號(hào),然后利用這個(gè)編號(hào)將書(shū)真正加入購(gòu)物車(chē)。其中, request變量 add的值是在它的上一個(gè)頁(yè)面。 ? : …… pstronga href=%=()%/catalog?Add=%=bookId%Add To Your Shopping Cart/a …… 利用 request獲取整個(gè)輸入流,然后自己在對(duì)整個(gè)流進(jìn)行分析,得到自己想要的值。 ? 具體方法是,如果要讀取字符數(shù)據(jù),使用getReader()方法,它將返回一個(gè)BufferredReader類(lèi)型的變量,如果要讀取二進(jìn)制數(shù)據(jù),使用 getInputStream()方法,它將返回一個(gè) ServletInputStream類(lèi)型的結(jié)果。 request主要處理的是基于 HTTP協(xié)議的請(qǐng)求,在 JSP環(huán)境下,一個(gè) HTTP請(qǐng)求也可以說(shuō)是一個(gè) HTTP請(qǐng)求 URL 其格式通常為 path]?[query string] 其中, request path一般由 3部分組成: ? context path:是 Servlet應(yīng)用程序的根所處的上下文環(huán)境,通常由一連串的“ /” 組成。 ? servlet path:激活這個(gè)請(qǐng)求的組件別名,其路徑通常由“ /”開(kāi)始。 ? path info:是請(qǐng)求路徑中出了上述兩部分之外的路徑描述。 例如:假設(shè) context path為 /catalog,那么各組成部分的取值分別見(jiàn)表 query string通常由參數(shù)及其取值這樣的對(duì)子組成,生成 query string的方法有兩個(gè) ? 一是由 Servlet生成 Web頁(yè)面時(shí)生成。 如一個(gè) HTML頁(yè)面在生成的時(shí)候,含有這樣一個(gè)鏈接: a href=“/bookstore1/catalog?Add=101”Add To Cart/a,那么程序就可以利用上面講到的 getParameter()方法將參數(shù) add的值取到。 ? 另外, query string還可以在表單中使用隱藏域添加到 URL后面,待表單以 get()方法提交時(shí),就被傳送到下一頁(yè)去了。 另外, request中還有一些非常有用的方法,請(qǐng)參見(jiàn)下表 2. response對(duì)象 response是與 request相對(duì)的一個(gè)對(duì)象,其作用在于向客戶(hù)端做出響應(yīng)。所有的 response對(duì)象都實(shí)現(xiàn)了ServletResponse接口,這個(gè)接口定義了一些方法,允許做以下的事情: ? 獲取從服務(wù)器向客戶(hù)端發(fā)送的輸出流。 ? 指示由 response返回信息的類(lèi)型,例如 text/html。 ? 指明是否對(duì)輸出流做緩沖,默認(rèn)情況下,所有輸出流會(huì)馬上被發(fā)送到客戶(hù)端。 ? 設(shè)置一些本地信息。 例如,在書(shū)店的例子中, 碼獲取一本書(shū)的詳細(xì)信息: ? 程序代碼 ? 程序中使用緩沖區(qū)的目的是,如果在應(yīng)答信息組成過(guò)程中發(fā)生了錯(cuò)誤,那么由于已經(jīng)輸出的信息還在緩沖區(qū)里面,就不會(huì)被客戶(hù)看到,這時(shí)候只要將錯(cuò)誤信息覆蓋到緩沖區(qū)就可以了。否則用戶(hù)可能會(huì)看到一部分正常的返回信息,后面緊跟著錯(cuò)誤信息。 3. out對(duì)象 ? ,用于在服務(wù)器與客戶(hù)端之間傳遞信息的輸出流。 session對(duì)象 所謂 (Session)會(huì)話(huà)就是指從用戶(hù)登錄系統(tǒng)到其主動(dòng)退出或者因?yàn)槌瑫r(shí)而被系統(tǒng)結(jié)束其訪(fǎng)問(wèn)之間的全過(guò)程。 1. session的應(yīng)用背景 ? Servlet提供了一種與眾不同的 HttpSession API方案。HttpSession API是一個(gè)基于 cookie或者 URL改寫(xiě)機(jī)制的高級(jí)會(huì)話(huà)狀態(tài)跟蹤接口 。 2. session的使用 主要的操作包括:查看和當(dāng)前請(qǐng)求關(guān)聯(lián)的會(huì)話(huà)對(duì)象,必要的時(shí)候創(chuàng)建新的會(huì)話(huà)對(duì)象,查看與某個(gè)會(huì)話(huà)相關(guān)的信息,在會(huì)話(huà)對(duì)象中保存信息,以及會(huì)話(huà)完成或中止時(shí)釋放會(huì)話(huà)對(duì)象。 (1)獲取當(dāng)前請(qǐng)求的會(huì)話(huà)對(duì)象 ? 獲取當(dāng)前請(qǐng)求的會(huì)話(huà)對(duì)象可以通過(guò)調(diào)用HttpServletRequest的 getSession()方法實(shí)現(xiàn)。 ? 具體語(yǔ)法如下: HttpSession session = (true)。 (2) 獲取和設(shè)置 session變量 ? 獲取某個(gè) session變量的值可以使用 getAttribute()方法 ,它返回的是一個(gè) object對(duì)象。 ? setAttribute()方法可以設(shè)置 session變量,這個(gè)方法需要兩個(gè)參數(shù),即變量的名稱(chēng) name和變量的值 value,它們分別是 String和 Object類(lèi)型。 (3) 獲取與 session自身相關(guān)的信息 ? getID 返回會(huì)話(huà)的惟一標(biāo)識(shí)。 ? isNew 如果客戶(hù) (瀏覽器 )還沒(méi)有綁定到會(huì)話(huà)則返回 true,通常意味著該會(huì)話(huà)剛剛創(chuàng)建,而不是引用自客戶(hù)端的請(qǐng)求。對(duì)于原來(lái)已存在的會(huì)話(huà),返回值為 false。 ? getCreationTime 該方法返回建立會(huì)話(huà)的以毫秒計(jì)的時(shí)間,從 (GMT)算起。 ? getLastAccessedTime 該方法返回客戶(hù)最后一次發(fā)送請(qǐng)求的以毫秒計(jì)的時(shí)間,從(GMT)算起。 ? getMaxInactiveInterval 返回以秒計(jì)的最大時(shí)間間隔,如果客戶(hù)請(qǐng)求之間的間隔不超過(guò)該值,Servlet引擎將保持會(huì)話(huà)有效。負(fù)數(shù)表示會(huì)話(huà)永遠(yuǎn)不會(huì)超時(shí)。 3. 會(huì)話(huà)的生命周期 ? session是有一定的生命周期的,一個(gè) session可以用isNew()方法來(lái)判斷它是否為一個(gè)新的 session。 ? session在一段時(shí)間內(nèi)沒(méi)有發(fā)生任何動(dòng)作,就會(huì)自動(dòng)失效。 ? session的失效時(shí)間是可以通過(guò)程序設(shè)置的。 4. 實(shí)例 例 顯示會(huì)話(huà)信息 ? 下面這個(gè)例子生成一個(gè) Web頁(yè)面,在該頁(yè)面中顯示有關(guān)當(dāng)前會(huì)話(huà)的信息。 ? 程序代碼 ? 在程序中,我們判斷了該 session是否為新的會(huì)話(huà),然后,獲取了它的 ID、創(chuàng)建時(shí)間和上次訪(fǎng)問(wèn)時(shí)間。其執(zhí)行結(jié)果如圖所示。 例 設(shè)置與獲取信息 ? 這是一個(gè)在兩個(gè)頁(yè)面之間利用 session變量傳遞信息的例子 程序代碼 ? 在 ,我們利用 username賦值為T(mén)ierney,在這個(gè)頁(yè)面中,單擊 login按鈕,就會(huì)到下一頁(yè)。 程序代碼 ? 在這一頁(yè)中,我們?nèi)〕?username的值并顯示在頁(yè)面上。這兩頁(yè)的執(zhí)行結(jié)果如圖所示。 例 綜合實(shí)例 —— 購(gòu)物車(chē) ? 在購(gòu)物車(chē)程序中有兩個(gè)文件,一是提供商品列表的靜態(tài)頁(yè)面 ,另外一個(gè)是提供購(gòu)物車(chē)處理的動(dòng)態(tài)頁(yè)面 。 ? ? ? 其執(zhí)行結(jié)果如圖所示 與上下文有關(guān)的內(nèi)置對(duì)象 所謂上下文,我們可以理解成為一定范圍內(nèi)程序執(zhí)行的環(huán)境。 1. application application實(shí)現(xiàn)了 ,它的主要功能在于獲得或者修改 Servlet的一些設(shè)置信息,包括: ? 初始化參數(shù) ? 與 Web環(huán)境相關(guān)的資源 ? 參數(shù) 值對(duì) ? 記錄日志 例 利用 application對(duì)象限制用戶(hù)訪(fǎng)問(wèn) ? 在這個(gè)例子中,我們利用 application變量來(lái)限制訪(fǎng)問(wèn)網(wǎng)站的用戶(hù) IP地址。 ? 我們有一個(gè)文件 ,用來(lái)存儲(chǔ)允許訪(fǎng)問(wèn)的 IP地址如下: IPAcess1 = IPAcess2 = 然后,利用兩個(gè) .jsp程序來(lái)進(jìn)行限制。第一個(gè)程序 ,設(shè)置允許訪(fǎng)問(wèn)的列表,第二個(gè)程序,從列表中讀取允許訪(fǎng)問(wèn)的 IP地址,然后判斷用戶(hù)是否可以進(jìn)入。 ? ? ? 在這段程序中,我們先獲取允許的 IP地址,如果和本機(jī)的 IP不匹配,就輸出錯(cuò)誤信息,否則跳轉(zhuǎn)到 。 ? 由于我們使用的是 localhost,其 IP為 ,所以必然不匹配,因此得到如圖所示的結(jié)果。 2. pageContext pageContext是 ,它是 一個(gè)抽象類(lèi),主要用來(lái)維護(hù) JSP頁(yè)面的上下文。利用 pageContext, 可以方便地訪(fǎng)問(wèn)一個(gè) JSP頁(yè)面中所有的命名變量,同時(shí),它還提供 了訪(fǎng)問(wèn)頁(yè)面屬性的方法。 它的主要功能如下: ? 提供了單一 API用于管理各類(lèi)有一定可見(jiàn)范圍的對(duì)象。 ? 提供了一些方便的訪(fǎng)問(wèn)公共對(duì)象的方法。 ? 提供了獲取 JspWriter的機(jī)制。 ? 提供了管理 session使用方法的機(jī)制。 ? 提供了將頁(yè)面指令屬性開(kāi)放給腳本環(huán)境的機(jī)制。 ? 提供了將當(dāng)前請(qǐng)求傳遞給應(yīng)用程序內(nèi)其他組件的方法。 ? 提供了錯(cuò)誤處理機(jī)制。 它還提供了一系列方便地訪(fǎng)問(wèn)內(nèi)置對(duì)象的方法,如 getOut(), getException(), getPage(), getRequest(),getResponse(), getSession(), getServletConfig()和getServletContext()。 用于錯(cuò)誤處理的內(nèi)置對(duì)象 用于錯(cuò)誤處理的內(nèi)置對(duì)象值有一個(gè) exception,在程序發(fā)生錯(cuò)誤的 時(shí)候,可以利用這個(gè)對(duì)象獲取一些錯(cuò)誤信息。不過(guò)在使用它之前, 必須在 page指令中做如下聲明: %@ page isErrorPage=”true” % 否則,可能產(chǎn)生編譯錯(cuò)誤。 與 Servlet有關(guān)的內(nèi)置對(duì)象 與 Servlet有關(guān)的內(nèi)置對(duì)象有以下兩個(gè): ? page 表示 Servlet本身,即當(dāng) JSP頁(yè)面被編譯之后的 Servlet,實(shí)際上它很少被使用,它在某種程度上有點(diǎn)像 this變量,我們可以用它的getServletInfo()方法來(lái)獲取一些與 Servlet有關(guān)的信息。 ? config 其中存放著一些 Servlet初始的數(shù)據(jù)結(jié)構(gòu), config對(duì)象和 page對(duì)象一樣,都很少被使用,它提供了 getInitParameterNames()和getInitParameter()兩個(gè)方法來(lái)獲取 Servlet的初始參數(shù),另外,還可以使用 getServletName()方法來(lái)獲取 JSP頁(yè)面被編譯后的 Servlet的名字。 練 習(xí) 題 1. 選擇題 (1) 網(wǎng)絡(luò)應(yīng)用的 3層結(jié)構(gòu)指哪些層? A. Web層 B. 用戶(hù)層 C. 業(yè)務(wù)層 D. 數(shù)據(jù)層 (2) 哪些不是 J2EE結(jié)構(gòu)中的層次? A. Web層 B. EIS層 (Enterprise Information System企業(yè)信息系統(tǒng)層 ) C. 網(wǎng)絡(luò)層 D. 會(huì)話(huà)層 2. 編程題 (1)在自己的機(jī)器上安裝并啟動(dòng) Tomcat服務(wù)器,試運(yùn)行例子中的 JSP程序,檢驗(yàn)是否安裝正確。 (2)將我們給出的用 JSP編寫(xiě)的 HelloWorld程序編輯成 ,放到 /下面,在瀏覽器上執(zhí)行,觀(guān)察其執(zhí)行 結(jié)果。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1