Tomcat、Servlet、Servlet容器
Tomcat
簡單一句話:Tomcat是一個Servlet容器。這個容器當然就是裝Servlet用的。那Servlet是什么,就是一個(按照Servlet規范寫的一個)java類。
這個“裝”怎么理解:*實現了Servlet、JSP規范,同時提供http服務。*其實,就像社會與人的關系:社會制定能夠規范,人按照規范做事。然后社會保證你和其他人的良好溝通。
解決問題:處理動態頁面(jsp等)
Servlet 容器
Servlet容器也叫做Servlet引擎,是Web服務器或應用程序服務器的一部分,用于在發送的請求和響應之上提供網絡服務,解碼基于 MIME的請求,格式化基于MIME的響應。Servlet沒有main方法,不能獨立運行,它必須被部署到Servlet容器中,由容器來實例化和調用 Servlet的方法(如doGet()和doPost()),Servlet容器在Servlet的生命周期內包容和管理Servlet。在JSP技術 推出后,管理和運行Servlet/JSP的容器也稱為Web容器。
Servlet
Servlet(Server Applet),全稱Java Servlet。是用Java編寫的服務器端程序。是一個基于java技術的web組件,運行在服務器端,它由Servlet容器所管理,其主要功能在于交互式的瀏覽和修改數據,生成動態Web內容。
Servlet是在javax.serlvet包中定義的一個接口。它聲明了servlet生命周期中必不可少的三個方法-init()、service()和destroy()。每個servlet(無論是在SDK中定義的,或是自定義的)都必須實現這三個方法,而且由服務器在特定的時刻調用。
1. init()方法在servlet生命周期的初始化階段被調用。它傳遞一個實現了javax.servlet.ServletConfig接口的對象,使得servlet能夠從web application中獲取初始化參數。2. servlet初始化后,每接收一個請求,就會調用service()方法。每個請求的處理都在獨立的線程中進行。Web服務器對每個請求都會調用一次service()方法。service()方法判斷請求的類型,并把它轉發給相應的方法進行處理。3. 當需要銷毀servlet對象時,就要調用destroy()方法。該方法釋放被占用的資源。和所有的Java程序一樣,servlet運行在JVM中。引入servlet容器是為了處理復雜的HTTP請求。Servlet容器負責servlet的創建、執行和銷毀。
工作模式
HttpServlet
javax.servlet.http.HttpServlet實現了專門用于響應HTTP請求的Servlet,提供了響應對應HTTP標準請求的doGet(),doPost()方法。
生命周期
當servlet被部署在應用服務器中(應用服務器中用于管理java組件的部分被抽象為容器),有容器控制servlet的生命周期。除非特殊指定,否則在容器啟動的時候,servlet是不會被加載的,servlet只會在第一次請求的時候會被加載和實例化。servlet一旦被加載,一版不會從容器中刪除,直至應用服務器關閉或重新啟動,但當容器做存儲器回收動作時,servlet有可能被刪除,也正是因為這個原因,第一次訪問servlet所用的時間要大大多于以后訪問所用的時間。
實例
import javax.servlet.http.HttpServlet
@WebServlet(name=‘light’,urlPatterns=)
Tomcat與Apache服務器的關系
Apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet容器,是Apache的擴展。
Apache和Tomcat都可以做為獨立的web服務器來運行,但是Apache不能解釋java程序(jsp,serverlet)。
Apache是普通服務器,本身只支持html即普通網頁。不過可以通過插件支持php,還可以與Tomcat連通(單向Apache連接Tomcat,就是說通過Apache可以訪問Tomcat資源。反之不然)
兩者都是一種容器,只不過發布的東西不同:Apache是html容器,功能像IIS一樣;Tomcat是jsp/servlet容器,用于發布jsp及java的,類似的有IBM的webshere、EBA的Weblogic,sun的JRun等等。
Apache和Tomcat是獨立的,在同一臺服務器上可以集成。
打個比方:Apache是一輛卡車,上面可以裝一些東西如html等。但是不能裝水,要裝水必須要有容器(桶),Tomcat就是一個桶(裝像Java這樣的水),而這個桶也可以不放在卡車上。
Apache只支持靜態網頁,但像asp,php,cgi,jsp等動態網頁就需要Tomcat來處理。
總結
以上是生活随笔為你收集整理的Tomcat、Servlet、Servlet容器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLServer重建索引
- 下一篇: MongoDB文件操作(支持大于4M数据