偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺析Servlet的Web應(yīng)用程序

開發(fā) 后端
本文簡(jiǎn)單介紹Servlet的Web應(yīng)用程序,以及介紹載入Servlet,cookie是如何工作的和eCourt會(huì)話等。

Java Servlet API的一個(gè)強(qiáng)大特性是其能夠相對(duì)容易地處理表單數(shù)據(jù)。和傳統(tǒng)CGI開發(fā)中四處尋找環(huán)境變量不同,你可以通過(guò)常規(guī)的調(diào)用Java方法使用Servlets來(lái)訪問(wèn)表單和查詢字符串?dāng)?shù)據(jù)。讓我們來(lái)看一下它是如何工作的。你可以在這里下載本文示例的代碼。

載入Servlet

當(dāng)Servlet被加載的時(shí)候,Servlet引擎會(huì)調(diào)用Servlet的init方法。這個(gè)方法在Servlet被加載的時(shí)候只會(huì)被調(diào)用一次,并把配置數(shù)據(jù)以ServletConfig類的實(shí)例的形式傳遞出去。ServletConfig對(duì)象包含有Servlet引擎和Servlet運(yùn)行環(huán)境的信息。

ServletConfig對(duì)象會(huì)向Servlet所操作的Web應(yīng)用程序公開初始化數(shù)據(jù)。使用getInitParamete(StringparamName)方法,你可以訪問(wèn)到這個(gè)數(shù)據(jù),如Listing A所示。

破壞之前

Servlet類會(huì)公開一個(gè)方法——destroy,在Servlet正常卸載的時(shí)候,Servlet引擎就會(huì)調(diào)用這個(gè)方法。當(dāng)Servlet所有的線程都卸載完畢或者超過(guò)了指定時(shí)間之后,這個(gè)方法就會(huì)被調(diào)用。它被用來(lái)保存Servlet或者清除資源,見Listing B。
更多關(guān)于Servlet的文章
在《Java Servlet入門》這篇文章里,我們討論了由Java平臺(tái)提供的Servlet如何在胖客戶平臺(tái)里使用類似面向?qū)ο蟮募夹g(shù)幫助創(chuàng)建Web應(yīng)用程序。要了解Tomcat,看一看《Tomcat 4/JSP初學(xué)者指南》。
每個(gè)用戶一個(gè)實(shí)例

Servlet必須要能夠處理來(lái)自多個(gè)客戶的多個(gè)請(qǐng)求。由于任意數(shù)量的客戶都會(huì)同時(shí)訪問(wèn)一個(gè)Servlet,所以除了init之外的任何方法都必須以安全線程的方式被實(shí)現(xiàn)。下圖是多個(gè)用戶請(qǐng)求和單個(gè)Servlet實(shí)例之間的關(guān)系。

對(duì)單個(gè)servlet的多個(gè)客戶請(qǐng)求

對(duì)單個(gè)servlet的多個(gè)客戶請(qǐng)求

cookie是如何工作的

由于是一個(gè)Servlet處理多個(gè)用戶的請(qǐng)求,所以Servlet需要一種機(jī)制來(lái)確定是哪個(gè)客戶發(fā)起哪個(gè)請(qǐng)求的。用來(lái)辨認(rèn)客戶請(qǐng)求身份最常用的機(jī)制是使用HTTP cookie。HTTP cookie是使用HTTP報(bào)頭在瀏覽器客戶和服務(wù)器之間傳遞的任意長(zhǎng)度的信息。

當(dāng)Servlet接收到來(lái)自有cookie的客戶的請(qǐng)求,Servlet就會(huì)使用cookie里的信息確定是哪個(gè)客戶,并由此智能地向客戶回應(yīng)。這看起來(lái)像是一個(gè)無(wú)足輕重的特性,但是它把客戶和基于 Servlet的Web應(yīng)用程序之間的交互操作帶進(jìn)了一個(gè)新的空間。尤其,這個(gè)特性讓W(xué)eb應(yīng)用程序能夠保存和恢復(fù)請(qǐng)求之間的客戶狀態(tài)。

Servlet維護(hù)客戶狀態(tài)的能力能允許客戶和基于Servlet的Web應(yīng)用程序進(jìn)行對(duì)話,而不是把客戶限制在一次性的請(qǐng)求/回應(yīng)的事務(wù)處理里。Java Servlet API提供了一個(gè)叫做Cookie的類,它能夠被從請(qǐng)求里取回,也能被保存在回應(yīng)里,這個(gè)類還能讓你從cookie里獲得信息或者設(shè)置信息。例如,Listing C里的程序段從請(qǐng)求里取回cookie,打印每個(gè)cookie的信息,或者創(chuàng)建新的cookie并把它添加到回應(yīng)里。

eCourt會(huì)話

有了能夠維持請(qǐng)求和回應(yīng)之間客戶狀態(tài)的能力,面向Servlet的Web應(yīng)用程序開發(fā)人員就能夠有效地設(shè)計(jì)Web應(yīng)用程序,這樣的程序能夠在叫做會(huì)話的一段時(shí)間內(nèi)和客戶進(jìn)行交互操作。會(huì)話能夠被Servlet開發(fā)人員用來(lái)接收來(lái)自客戶的數(shù)據(jù),并根據(jù)先前請(qǐng)求和/或回應(yīng)里接收到的信息把數(shù)據(jù)傳遞給客戶。這有助于開發(fā)高效的Web應(yīng)用程序,例如購(gòu)物車、在線銀行和Web郵件。

Java Servlet API提供了一個(gè)叫做HttpSession的類,開發(fā)人員可以在其中保存和取回任意對(duì)象,這些對(duì)象里包含有和客戶會(huì)話相關(guān)信息。對(duì)象作為名稱/值被保存在HttpSession類里,并被從其中取回。Listing D是一個(gè)這樣的例子。

結(jié)論

使用Java Servlet API,你就能夠?qū)崿F(xiàn)一些很強(qiáng)大的功能,這些都是使用傳統(tǒng)CGI編程很難做到的,例如將一個(gè)請(qǐng)求同客戶關(guān)聯(lián)起來(lái),實(shí)現(xiàn)與客戶之間有意義的對(duì)話。

【編輯推薦】

  1. Servlet容器的會(huì)話跟蹤
  2. 詳解Servlet實(shí)例
  3. 淺談Servlet讀取請(qǐng)求頭
  4. 調(diào)用Http Servlet Request的方法
  5. 淺析Servlet基本結(jié)構(gòu)
責(zé)任編輯:佚名 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-10 17:24:07

Swing應(yīng)用程序

2011-07-20 16:59:07

2022-12-25 18:03:13

Debug原理軟件

2009-07-30 16:02:53

2010-01-26 13:29:46

VC++應(yīng)用程序

2009-09-24 17:21:17

加速Hibernate

2009-07-20 16:08:04

ASP.NET應(yīng)用程序

2009-07-20 16:03:14

ASP.NET 2.0

2009-04-01 14:33:33

2010-02-22 10:38:09

Python應(yīng)用程序

2018-10-25 15:13:23

APP脫殼工具

2010-05-20 09:48:36

2011-03-22 14:12:17

LAMP

2010-12-27 17:04:07

應(yīng)用程序版本升級(jí)

2009-01-16 09:22:40

Web應(yīng)用程序Web程序管理Web服務(wù)

2012-04-19 09:34:21

ibmdw

2009-02-27 17:00:25

2009-07-01 13:54:41

Servlet和JSP

2010-03-09 13:27:23

Web 2.0應(yīng)用程序

2023-01-09 17:04:24

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)