国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Servlets提供了一個CGI開發(fā)的簡單替換方法

2019-11-18 12:34:01
字體:
供稿:網(wǎng)友

  java Servlet API的一個強大特性是其能夠相對輕易地處理表單數(shù)據(jù)。和傳統(tǒng)CGI開發(fā)中四處尋找環(huán)境變量不同,你可以通過常規(guī)的調(diào)用Java方法使用servlets來訪問表單和查詢字符串?dāng)?shù)據(jù)。讓我們來看一下它是如何工作的。你可以在這里下載本文示例的代碼。
  
  載入servlet
   
  當(dāng)servlet被加載的時候,servlet引擎會調(diào)用servlet的init方法。這個方法在servlet被加載的時候只會被調(diào)用一次,并把配置數(shù)據(jù)以ServletConfig類的實例的形式傳遞出去。ServletConfig對象包含有servlet引擎和servlet運行環(huán)境的信息。
  
  ServletConfig對象會向servlet所操作的Web應(yīng)用程序公開初始化數(shù)據(jù)。使用getInitParamete(String paramName)方法,你可以訪問到這個數(shù)據(jù),如Listing A所示。
  
  破壞之前
  
  servlet類會公開一個方法——destroy,在servlet正常卸載的時候,servlet引擎就會調(diào)用這個方法。當(dāng)servlet所有的線程都卸載完畢或者超過了指定時間之后,這個方法就會被調(diào)用。它被用來保存servlet或者清除資源,見Listing B。
  更多關(guān)于servlet的文章
  在《Java servlet入門》這篇文章里,我們討論了由Java平臺提供的servlet如何在胖客戶平臺里使用類似面向?qū)ο蟮募夹g(shù)幫助創(chuàng)建Web應(yīng)用程序。要了解Tomcat,看一看《Tomcat 4/jsp初學(xué)者指南》。
  每個用戶一個實例
  
  servlet必須要能夠處理來自多個客戶的多個請求。由于任意數(shù)量的客戶都會同時訪問一個servlet,所以除了init之外的任何方法都必須以安全線程的方式被實現(xiàn)。
  
  圖A是多個用戶請求和單個servlet實例之間的關(guān)系。
  
  圖A
  Servlets提供了一個CGI開發(fā)的簡單替換方法
  對單個servlet的多個客戶請求
  cookie是如何工作的
  
  由于是一個servlet處理多個用戶的請求,所以servlet需要一種機制來確定是哪個客戶發(fā)起哪個請求的。用來辨認(rèn)客戶請求身份最常用的機制是使用HTTP cookie。HTTP cookie是使用HTTP報頭在瀏覽器客戶和服務(wù)器之間傳遞的任意長度的信息。
  
  當(dāng)servlet接收到來自有cookie的客戶的請求,servlet就會使用cookie里的信息確定是哪個客戶,并由此智能地向客戶回應(yīng)。這看起來像是一個無足輕重的特性,但是它把客戶和基于 servlet的Web應(yīng)用程序之間的交互操作帶進了一個新的空間。尤其,這個特性讓W(xué)eb應(yīng)用程序能夠保存和恢復(fù)請求之間的客戶狀態(tài)。
  
  servlet維護客戶狀態(tài)的能力能答應(yīng)客戶和基于servlet的Web應(yīng)用程序進行對話,而不是把客戶限制在一次性的請求/回應(yīng)的事務(wù)處理里。Java servlet API提供了一個叫做Cookie的類,它能夠被從請求里取回,也能被保存在回應(yīng)里,這個類還能讓你從cookie里獲得信息或者設(shè)置信息。例如,Listing C里的程序段從請求里取回cookie,打印每個cookie的信息,或者創(chuàng)建新的cookie并把它添加到回應(yīng)里。
  
  eCourt會話
  
  有了能夠維持請求和回應(yīng)之間客戶狀態(tài)的能力,面向servlet的Web應(yīng)用程序開發(fā)人員就能夠有效地設(shè)計Web應(yīng)用程序,這樣的程序能夠在叫做會話的一段時間內(nèi)和客戶進行交互操作。會話能夠被servlet開發(fā)人員用來接收來自客戶的數(shù)據(jù),并根據(jù)先前請求和/或回應(yīng)里接收到的信息把數(shù)據(jù)傳遞給客戶。這有助于開發(fā)高效的Web應(yīng)用程序,例如購物車、在線銀行和Web郵件。
  
  Java servlet API提供了一個叫做Httpsession的類,開發(fā)人員可以在其中保存和取回任意對象,這些對象里包含有和客戶會話相關(guān)信息。對象作為名稱/值被保存在HttpSession類里,并被從其中取回。Listing D是一個這樣的例子。
  
  結(jié)論
  
  使用Java servlet API,你就能夠?qū)崿F(xiàn)一些很強大的功能,這些都是使用傳統(tǒng)CGI編程很難做到的,例如將一個請求同客戶關(guān)聯(lián)起來,實現(xiàn)與客戶之間有意義的對話。在下一篇文章里,我們會擴展對服務(wù)器端開發(fā)的探索,同時看看事務(wù)邏輯組件和中間件的概念。
  
   本文的相關(guān)連接請點這里>>>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新民市| 布尔津县| 漠河县| 临湘市| 岚皋县| 高淳县| 佛学| 宜州市| 牡丹江市| 枣庄市| 澄江县| 平安县| 陵川县| 炎陵县| 广州市| 朝阳县| 兴安盟| 岳普湖县| 无极县| 阿合奇县| 班玛县| 绍兴县| 吉木乃县| 石台县| 永平县| 襄垣县| 平谷区| 隆化县| 湘乡市| 兰考县| 英山县| 安丘市| 伊金霍洛旗| 安阳县| 上栗县| 曲阳县| 通道| 房山区| 喀喇沁旗| 神木县| 兴化市|