亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

Servlet技術(shù)及其與CGI的比較

2019-11-18 15:08:20
字體:
供稿:網(wǎng)友

  WebSphere application Server作為e-Business應(yīng)用的核心,提供了基于java Servlet技術(shù)的引擎,它把基本的HTTP Server擴(kuò)充成為基于Java的應(yīng)用服務(wù)器,提供了比CGI技術(shù)更優(yōu)的性能。本文旨在對Java Servlet技術(shù)作一般性的介紹,并與傳統(tǒng)的CGI技術(shù)進(jìn)行比較。
  Servlet是用Java編寫的Server端程序,它與協(xié)議和平臺(tái)無關(guān)。Servlet運(yùn)行于Java-enabled Web Server中。Java Servlet可以動(dòng)態(tài)地?cái)U(kuò)展Server的能力,并采用請求-響應(yīng)模式提供Web服務(wù)。

  最早支持Servlet技術(shù)的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server開始支持標(biāo)準(zhǔn)的Servlet API。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。這個(gè)過程為:

  ?客戶端發(fā)送請求至服務(wù)器端;

  ?服務(wù)器將請求信息發(fā)送至Servlet;

  ?Servlet生成響應(yīng)內(nèi)容并將其傳給Server。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請求;

  ?服務(wù)器將響應(yīng)返回給客戶端。

  Servlet看起來像是通常的Java程序。Servlet導(dǎo)入特定的屬于Java Servlet API的包。因?yàn)槭菍ο笞止?jié)碼,可動(dòng)態(tài)地從網(wǎng)絡(luò)加載,可以說Servlet對Server就如同Applet對Client一樣,但是,由于Servlet運(yùn)行于Server中,它們并不需要一個(gè)圖形用戶界面。從這個(gè)角度講,Servlet也被稱為Faceless Object。

  Servlet的優(yōu)勢

  Java Servlet提供了許多優(yōu)勢:

  ?Servlet可以和其他資源(文件、數(shù)據(jù)庫、Applet、Java應(yīng)用程序等)交互,以生成返回給客戶端的響應(yīng)內(nèi)容。假如需要,還可以保存請求-響應(yīng)過程中的信息。

  ?采用Servlet,服務(wù)器可以完全授權(quán)對本地資源的訪問(如數(shù)據(jù)庫),并且Servlet自身將會(huì)控制外部用戶的訪問數(shù)量及訪問性質(zhì)。

  ?Servlet可以是其它服務(wù)的客戶端程序,例如,它們可以用于分布式的應(yīng)用系統(tǒng)中。

  ?可以從本地硬盤,或者通過網(wǎng)絡(luò)從遠(yuǎn)端硬盤激活Servlet。

  ?Servlet可被鏈接(chain)。一個(gè)Servlet可以調(diào)用另一個(gè)或一系列Servlet,即成為它的客戶端。

  ?采用Servlet Tag技術(shù),可以在Html頁面中動(dòng)態(tài)調(diào)用Servlet。

  ?Servlet API與協(xié)議無關(guān)。它并不對傳遞它的協(xié)議有任何假設(shè)。

  ?像所有的Java程序一樣,Servlet擁有面向?qū)ο驤ava語言的所有優(yōu)勢。

  Servlet與CGI-BIN

  概括來講,Servlet可以完成和CGI相同的功能。

  CGI應(yīng)用開發(fā)比較困難,因?yàn)樗蟪绦騿T有處理參數(shù)傳遞的知識(shí),這不是一種通用的技能。CGI不可移植,為某一特定平臺(tái)編寫的CGI應(yīng)用只能運(yùn)行于這一環(huán)境中。每一個(gè)CGI應(yīng)用存在于一個(gè)由客戶端請求激活的進(jìn)程中,并且在請求被服務(wù)后被卸載。這種模式將引起很高的內(nèi)存、CPU開銷,而且在同一進(jìn)程中不能服務(wù)多個(gè)客戶。

  Servlet提供了Java應(yīng)用程序的所有優(yōu)勢??可移植、穩(wěn)健、易開發(fā)。使用Servlet Tag技術(shù),Servlet能夠生成嵌于靜態(tài)HTML頁面中的動(dòng)態(tài)內(nèi)容。

  Servlet對CGI的最主要優(yōu)勢在于一個(gè)Servlet被客戶端發(fā)送的第一個(gè)請求激活,然后它將繼續(xù)運(yùn)行于后臺(tái),等待以后的請求。每個(gè)請求將生成一個(gè)新的線程,而不是一個(gè)完整的進(jìn)程。多個(gè)客戶能夠在同一個(gè)進(jìn)程中同時(shí)得到服務(wù)。一般來說,Servlet進(jìn)程只是在Web Server卸載時(shí)被卸載。(見圖1)

  圖1 Servlet運(yùn)行模式

  圖2 Servlet生命周期

  Servlet生命周期

  Servlet的生命周期(見圖2)可以被歸納為以下幾點(diǎn):

  ?裝載Servlet。這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的。然而,Server通常會(huì)提供一個(gè)治理的選項(xiàng),用于在Server啟動(dòng)時(shí)強(qiáng)制裝載和初始化特定的Servlet(1);

  ?Server創(chuàng)建一個(gè)Servlet的實(shí)例(2);

  ?Server調(diào)用Servlet的init()方法(3);

  ?一個(gè)客戶端的請求到達(dá)Server(1);

  ?Server創(chuàng)建一個(gè)請求對象(4);

  ?Server創(chuàng)建一個(gè)響應(yīng)對象(5);

  ?Server激活Servlet的service()方法(6),傳遞請求(7)和響應(yīng)(8)對象作為參數(shù);

  ?service()方法獲得關(guān)于請求對象的信息,處理請求,訪問其他資源(9),獲得需要的信息(10);

  ?service()方法使用響應(yīng)對象的方法,將響應(yīng)傳回Server(11)、(12),最終到達(dá)客戶端(13)。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程序員自己開發(fā)的新的方法;

  ?對于更多的客戶端請求,Server創(chuàng)建新的請求和響應(yīng)對象,仍然激活此Servlet的service()方法,將這兩個(gè)對象作為參數(shù)傳遞給它。如此重復(fù)以上的循環(huán),但無需再次調(diào)用init()方法。一般Servlet只初始化一次;

  ?當(dāng)Server不再需要Servlet時(shí)(一般當(dāng)Server關(guān)閉時(shí)),Server調(diào)用Servlet的Destroy()方法。

  Servlet與CGI程序的比較

  CGI(Common Gateway Interface)程序,主要用Perl、Shell Script或C編寫,能夠向客戶端提供動(dòng)態(tài)內(nèi)容,即每次客戶端瀏覽器訪問某一頁面時(shí),可以看到不同的內(nèi)容。這里對完成相同功能的CGI程序和Java Servlet程序作一比較,以便更清楚地看到Servlet的簡單特性。

  這里CGI和Servlet程序的功能均為獲得客戶端在瀏覽器表單中輸入的參數(shù)(Firstname,Lastname),并將返回給客戶端。相應(yīng)的CGI程序和Servlet程序分別如下:

  ?CGI程序(Perl):

  $query?string=$ENV{?QUERY?STRING?};

  $query?string=As/%([dA-Fa-f][dA-Fa-f])/pack(″C″,hex()$1))/eg;$query?string=As/+//g;

  @pairs=split(/&/,$query?string);

  foreach $pair(@pairs) {

   ($key,$value)=split(/=/,$pair);

   $form?data{$key}=$value;

  }

  $firstname=$form?data{″firstname″};

  $lastname=$form?data{″lastname″};

  PRint ″Hello,$firstname $lastname. Thank you for your visit! ″;

  ?Servlet程序:

  public void service(HttpServletRequest request,HttpServletResponse response)

  throws ServletExeption,IOExeption

  {

   ServletOutputStreamout=response.getOutputStream();

   response.setContentType(″text/html″);

   String firstname=request.getParameter(″firstname″);

   String lastname=request.getParameter(″lastname″);

   out.println(″Hello,″+firstname+″ ″+lastname+″.″);

   out.println(″Thank you for your visit!″);

   out.lose()

  }

  可以很明顯地看到Java Servlet源代碼比相應(yīng)的CGI Perl Script簡單許多。這里需要導(dǎo)入三個(gè)package:javax.servlet、javax.servlet.http和java.io。定義Servlet的類擴(kuò)展了HttpServlet class,而不是GenericServlet class,因?yàn)榇薙ervlet需要與HTML form進(jìn)行交互。

  在CGI程序中有很大一部分用于處理對參數(shù)的提取和解碼過程,而在Servlet程序中,解碼傳遞的參數(shù)部分并不需要額外編寫。從HttpServlet class繼續(xù)來的基本函數(shù)可以自動(dòng)完成解碼的過程。因此,程序員可以在Servlet service()方法中直接獲取由客戶端創(chuàng)建和編碼的Key-value對。解碼后的Key-value對可以直接從HttpServlet class的service()方法的第一個(gè)參數(shù)中獲得。這將極大地減少程序員的勞動(dòng)量和重復(fù)的代碼勞動(dòng),并降低編碼難度。

  綜上所述,Servlet在性能、編寫難度、可移植性等方面比CGI有明顯優(yōu)勢。在WebSphere Application Server中提供了功能強(qiáng)大的Servlet API,它們比JSDK擁有更多的功能和更優(yōu)的性能,為Servlet的編程提供了很好的支持。隨著WAS的日益推廣和Java技術(shù)的普及,可以預(yù)見,Servlet技術(shù)將取代CGI,成為對Web Server功能擴(kuò)充的標(biāo)準(zhǔn)技術(shù)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美电影h版| 日本一区二区三区四区五区六区| 中文字幕一区二区5566日韩| 中文字幕无码人妻少妇免费| 一本综合久久| 欧美女优在线视频| 色狠狠av一区二区三区香蕉蜜桃| 欧美激情黄色片| 亚洲欧美小说国产图片| 96久久久久久| 17c丨国产丨精品视频| 亚洲视频国产| 国产精选久久久| 色噜噜狠狠色综合欧洲selulu| 伊人色综合网| 欧美 日本 国产| 希岛爱理中文字幕| 欧美成人a∨高清免费观看| 国产69精品久久久久9999| 免费人成精品欧美精品| 国内精品自线一区二区三区视频| 国产在线导航| 免费精品99久久国产综合精品| 成人午夜伦理影院| 精品国模一区二区三区欧美| 白浆视频在线观看| 日本在线视频站| 希岛爱理一区二区三区| 黄网视频午夜青春| 91极品女神私人尤物在线播放| 在线观看国产欧美| 亚洲欧美日韩国产一区二区| 能直接看的av| 国产精品网站一区| 国产亚洲依依| 亚洲成年人在线播放| 97超碰在线免费观看| 国产精品日韩欧美一区二区三区| 欧美亚州一区二区三区| av午夜一区麻豆| 大胆人体色综合| 2024最新电影在线免费观看| 精品国产一区久久| 国内精品一区二区三区| 欧美 日韩 国产精品免费观看| 欧美韩国日本精品一区二区三区| 国产精品亚洲一区二区三区在线| 69国产成人精品视频软件| 人妻少妇精品无码专区二区| 一级片中文字幕| 永久免费观看片现看| 欧美一级爽aaaaa大片| av中文天堂在线| 欧美军同video69视频| 欧美精品自拍| 欧美久色视频| 美女久久一区| 中文字幕亚洲欧洲| 久久免费黄色| 欧美激情欧美狂野欧美精品| 日韩欧美国产免费播放| 91视频在线观看免费| 91禁外国网站| 91精品国产福利| 97久草视频| 亚洲男人的天堂av| 成人免费观看在线观看| 国精产品乱码一区一区三区四区| juy有坂深雪中文字幕| 一本一道久久久a久久久精品91| 风间由美一区二区三区| 国产 日韩 亚洲 欧美| a视频在线免费看| 色综合伊人色综合网| 欧美黑人一区二区三区| 亚洲精品天堂在线观看| 亚洲最大色综合成人av| 日韩成人在线播放| 日韩欧美黄色| 免费成人深夜夜行视频| 日韩精品1区2区| www.亚洲激情| 亚洲欧美激情视频在线观看一区二区三区| 亚洲自拍偷拍网站| 精品国产伦一区二区三| 影音先锋久久精品| 久久久久久亚洲精品中文字幕| 欧美偷拍视频| 丁香综合在线| 高清av中文在线字幕观看1| 欧美日韩另类字幕中文| 亚洲精品国产setv| 日本精品久久久久久久| 成人在线观看免费高清| 久久丫精品久久丫| 蜜桃精品视频在线| 永久免费毛片在线观看| 在线日本成人| 国产av无码专区亚洲精品| 国内成人精品视频| 午夜精品一区二区三区三上悠亚| 国产一区二区三区在线看麻豆| 噜噜噜久久,亚洲精品国产品| 最近中文字幕在线观看视频| 先锋影音在线资源站91| 日韩高清一区| 亚洲欧美日韩综合精品网| 精品欧美一区二区久久久| 91看片淫黄大片一级在线观看| 欧美午夜女人视频在线| 网站免费满18成年在线观看| 欧美一区二区激情视频| 国产亚洲欧美日韩精品一区二区三区| 一区二区三区一级片| 欧美日韩中文另类| 精品国产一区二区三区噜噜噜| 久久久午夜精品| 91成人网在线观看| 色婷婷av一区二区三区之一色屋| 亚洲人体av| www.蜜臀av| 91热福利电影| 国产男女无遮挡猛进猛出| 51蜜桃传媒精品一区二区| 国产成人无码a区在线观看视频| 丁香婷婷在线| 亚洲一区二区三区乱码| 在线一区二区三区视频| 欧美a在线观看| 久久久久久久久久久久久久久99| 欧美日韩中文在线| 97影院手机在线观看| 欧洲一区二区三区免费视频| 在线观看国产成人av片| 91精品视频专区| 日韩在线观看免费| 最新国产在线视频| 亚洲春色综合另类校园电影| www..com.cn蕾丝视频在线观看免费版| 国产欧美一区二区三区小说| 国产精品白浆| 老牛影视av一区二区在线观看| 在线免费观看视频黄| 一区二区三区视频在线观看免费| 国产精品成人一区二区三区| h片精品在线观看| 中文字幕av一区二区三区谷原希美| 91豆花视频在线播放| 永久免费不卡在线观看黄网站| www黄色网址| 日韩av毛片在线观看| 国产成人夜色高潮福利影视| www日韩av| 天天操天天干视频| 日本乱人伦a精品| 大陆极品少妇内射aaaaa| a一区二区三区| 亚洲第一在线综合在线| 秋霞福利视频| 九九热视频精品在线观看| 亚洲免费电影一区| 五月天国产一区| 国产精品嫩草影院精东| 日本二区视频| 在线看黄色av| 五月婷婷六月合| 国产精品嫩草影院com| 久久机热这里只有精品| 一个人看的www在线免费视频| 人妻无码中文久久久久专区| 内射一区二区三区| www.日本视频| 中文字幕制服丝袜| 亚洲春色h网| 欧美日韩免费做爰大片| 日韩欧美在线国产| a片在线免费观看| 欧洲激情一区二区| 永久av免费网站| 日本小视频网站| 欧美一区二区三区日韩视频| 日韩亚洲在线观看| 超碰成人免费| 亚洲av成人片色在线观看高潮| 久草在线免费二| 国产一区二区女内射| 日韩欧美专区| 天天干天天玩天天操| 国产女人水真多18毛片18精品| 91福利免费在线| 伊人久久亚洲| 一区二区三区四区五区在线| 国产欧美日本在线| 日日摸天天添天天添破| 成人免费毛片app| 丝袜亚洲精品中文字幕一区| 日本久久久a级免费| 亚洲欧美另类中文字幕| 老司机精品在线| 尤物视频网站| 久久人人爽人人爽人人片av不| 在线日本高清免费不卡| 手机看片福利在线| 中文不卡1区2区3区| eeuss鲁一区二区三区| 久久精品国产精品亚洲精品| 污污视频免费看| 夜夜操 天天摸| 无遮挡动作视频在线观看免费入口| 日本一区视频在线| 国产资源在线看| av大片在线| www.激情成人| 亚洲国产女人aaa毛片在线| 免费成人看片网址| 午夜写真片福利电影网| 久久天天躁狠狠躁夜夜躁| free性欧洲69| 2019年中文字幕| 91精品国产91久久| 日本一级片免费| 中文字幕有码热在线视频| 亚洲精品女人| 精品一区二区电影| 亚洲国产日韩a在线播放性色| 久久爱www.| 欧美丰满少妇人妻精品| 日韩欧美中文一区二区| 在线看片第一页欧美| 日本高清久久一区二区三区| 亚洲小说区图片区都市| 国产午夜激情视频| 久久久久欧美精品| 日韩欧美在线精品| 亚洲人成色777777老人头| 精品久久久三级丝袜| 国产日产欧美视频| 日韩欧美国产午夜精品| 99精品在线免费视频| 美女被黑人40厘米进入| 奇米4444一区二区三区| 国产手机视频精品| 一级黄色特级片| 国产农村妇女精品| 国产熟女一区二区| 色妞在线综合亚洲欧美| 中文字幕一区免费在线观看| 色欲色香天天天综合网www| 日本免费视频| 在线观看黄网站免费继续| 免费看男女www网站入口在线| 国产成人免费在线观看不卡| 欧美bbb人妖| 国产精品99久久免费黑人人妻| 全国精品免费看| 一本久道久久综合狠狠爱| 色视频在线观看福利| 久久亚洲资源| 色av男人的天堂免费在线| 男人用嘴添女人下身免费视频| 成人午夜视频在线观看| 91最新国产视频| 麻豆91av| 国产理论电影在线| 懂色av蜜臀av粉嫩av分享吧最新章节| 国产精品永久入口久久久| 亚洲欧美在线观看| 国产一级久久久| 国产黄色片网站| 蜜桃一区二区三区在线| 国产成人一区二区三区电影| 欧美日本中文| 精品国产欧美日韩| 韩国精品一区二区| 91欧美精品成人综合在线观看| 欧美高清videos性极品| 狠狠色丁香婷婷| 中文字幕成人av| 超碰在线超碰在线| 伊人国产在线视频| 高清久久一区| 欧美国产日产韩国视频| 男人女人靠逼视频| 中文字幕在线视频不卡| 欧美日韩亚洲第一| 亚洲午夜色婷婷在线| 日日骚欧美日韩| 黄色av网站在线免费观看| www.久草.com| 免费看男男www网站入口在线| 99热在线观看免费| 免费在线观看的电影网站| 91免费电影网站| 国产日韩在线| 国产一卡二卡三卡四卡| 伊人免费在线| 欧美日韩在线视频首页| 久久91精品国产91久久跳| 亚洲精品久久久久久国产精华液| 国产成年精品| 伊人影院在线观看| 免费看h的网站| 制服丝袜中文字幕一区| 亚洲天堂小视频| 国产精品视频免费| 国产美女在线播放| 精品一区二区三区免费看| 国产人妻精品一区二区三区| 国精品人妻无码一区二区三区喝尿| 麻豆精品在线看| 日韩欧美国产成人精品免费| 天天做天天爱天天综合网2021| 亚洲av毛片成人精品| 96亚洲精品久久久蜜桃| 一区二区三区中文字幕在线观看| 国产激情视频一区二区三区欧美| 久草在.com| 亚洲香蕉网站| 人人爱人人爽| 国产精品三区www17con| 日本韩国精品在线| 丰满少妇在线观看资源站| caoporn国产精品免费公开| 99热久久这里只有精品| 在线麻豆国产传媒1国产免费| 国产黄a三级三级三级| 色多多在线观看| 亚洲黄一区二区三区|