當前位置:編程學習大全網 - 編程語言 - servlet 來自哪壹個包,父類

servlet 來自哪壹個包,父類

在J2EE中跟Servlet相關的壹個包是javax.servlet,其中最基本的Servlet被聲明為壹個接口javax.servlet: Interface Servlet,這是Servlet最高層次的壹個抽象,它是和網絡協議無關的。同樣在javax.servlet中,實現了壹個類 javax.servlet: class GenericServlet,這個類實現了Servlet接口,也是和協議無關的。而這個類是構建其他和協議相關的Servlet子類型的通用的父類(至少HttpServlet是從它繼承而來的,從它的名字也能看出這壹點)。

也就是說Servlet所適用的網絡協議可以是多種多樣的,比如HTTP,FTP,SMTP,TELNET等,但是就目前而言,只有HTTP服務已經形成了標準的Java組件。對應的軟件包有兩個javax.servlet.http和javax.servlet.jsp,分別對應我們要講解的Servlet和JSP編程。我們通常所說的Servlet編程主要就是指針對HTTP的Servlet編程,用到的就是javax.servlet.http包中的類(典型的就是HttpServlet類),實際上Java Servlet編程的概念要更廣壹些,在這裏我們也就約定俗成的使用Servlet來指代HTTP Servlet的編程,這點讀者是需要了解的。由於JSP最終都是要經過JSP引擎轉換成Servlet代碼的,而且Servlet編程和壹般的Java編程是沒有大的區別的,只需要了解壹定的規範即可,所以我們在這裏先講解Servlet的編程,這樣對以後理解JSP是很大的有好處的,盡管在使用的時候可能JSP更為簡單壹些。

目前,Servlet引擎壹般是第三方的插件,它通過壹定的方法連接到Web服務器,Servlet引擎把它識別為Servlet請求的那些HTTP請求截獲下來處理,而其他的HTTP請求由Web服務器按照通常的方式來處理,Servlet引擎會裝載合適的Servlet到內存中,如果Servlet還沒有運行的話,會分配壹個可以使用的線程來處理請求,再把Servlet的輸出返回到發出請求的Web客戶機。

Java Servlet和Java Applet正好是相對應的兩種程序類型,Applet運行在客戶端,在瀏覽器內執行,而Servlet在服務器內部運行,通過客戶端提交的請求啟動運行,讀者在學習過程可以作簡單的比較。

由於Servlet是用Java編寫的,所以它與生俱來就有跨平臺的特性,因此Servlet程序的設計完全和平臺是無關的,同樣的Servlet完全可以在Apache,IIS等不同Web服務器上執行,不管底層的操作系統是Windows,Solaris,Mac,Linux還是其他的能支持Java的操作系統。

Servlet是跟普通的Java程序壹樣,是被編譯成字節碼後由JVM執行的。相比傳統的CGI,盡管CGI是用本地代碼直接執行的,但是由於每次客戶端發出請求,服務器必須啟動壹個新的程序來處理請求,這就把高負載強加給了服務器資源,尤其如果CGI使用腳本語言編寫時,如perl,服務器還必須啟動語言解釋程序,程序越多,占用的內存就越多,消耗CPU也越多,嚴重影響系統性能。

Servlet運行於Servlet引擎管理的Java虛擬機中,被來自客戶機的請求所喚醒,與CGI不同的是,在虛擬機中只要裝載壹個Servlet就能夠處理新的請求,每個新請求使用內存中那個Servlet的相同副本,所以效率比CGI來得高。如果采用服務器端腳本,如ASP,PHP,語言解釋程序是內置程序,因此可以加快服務器的運行,但是效率還是比不上準編譯的Servlet。實際的使用也已經證明,Servlet是效率很高的服務器端程序,很適合用來開發Web服務器應用程序。

Java Servlet有著十分廣泛的應用。不光能簡單的處理客戶端的請求,借助Java的強大的功能,使用Servlet還可以實現大量的服務器端的管理維護功能,以及各種特殊的任務,比如,並發處理多個請求,轉送請求,代理等

10.1.3 Servlet的運行環境

典型的Servlet運行環境有JSWDK,Tomcat,Resin等

  • 上一篇:怎麽可以認真學習?
  • 下一篇:電氣開關品牌排行大全
  • copyright 2024編程學習大全網