日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat、Servlet、Servlet容器

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的創建、執行和銷毀。

工作模式

  • 客戶端(通常都是瀏覽器)訪問Web服務器,發送HTTP請求。
  • Web服務器接收到請求后,傳遞給Servlet容器。
  • Servlet容器加載Servlet,產生Servlet實例后,向其傳遞表示請求和響應的對象。
  • Servlet實例使用請求對象得到客戶端的請求信息,然后進行相應的處理。
  • Servlet實例將處理結果通過響應對象發送回客戶端,容器負責確保響應正確送出,同時將控制返回給Web服務器。
  • 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容器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。