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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

什么是Servlet容器?

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是Servlet容器? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在本文中,我寫了一些關于Web服務器、Servlet容器以及它與JVM的關系的基本概念。我想表達的是,Servlet容器也僅僅不過是一個Java程序。

1. 什么是Web服務器?

? ? 想要知道什么是Servlet容器,我們首先要知道什么是Web服務器。


? ? Web服務器使用HTTP協議來傳輸數據。最簡單的一種情況是,用戶在瀏覽器(客戶端,client)中輸入一個URL(如,www.programcreek.com/static.html),然后就能獲取網頁進行閱覽。因此,服務器完成的工作就是發送網頁至客戶端。傳輸過程遵循HTTP協議,它指明了請求(request)消息和響應(response)消息的格式。

2. 什么是Servlet容器?

? ? 在這里,我們發現,用戶/客戶端只能向服務器請求靜態網頁。如果用戶想要根據自己的輸入來讀取網頁,這種方式就不能滿足用戶的要求。Servlet容器的基本思想是在服務器端使用Java來動態生成網頁。因此,Servlet容器是Web服務器和servlet進行交互的必不可少的組件。


? ??Servlet容器就是用來裝Servlet的。

3. 什么是Servlet?

? ??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的創建、執行和銷毀。

4. Servlet容器和Web服務器如何處理一個請求?

? ? 1. Web服務器接收到HTTP請求

? ? 2. Web服務器將請求轉發給servlet容器

? ? 3. 如果容器中不存在所需的servlet,容器就會檢索servlet,并將其加載到容器的地址空間中

? ? 4. 容器調用servlet的init()方法對servlet進行初始化(該方法只會在servlet第一次被載入時調用)

? ? 5. 容器調用servlet的service()方法來處理HTTP請求,即,讀取請求中的數據,創建一個響應。servlet會被保留在容器的地址空間中,繼續處理其他的HTTP請求

? ? 6. Web服務器將動態生成的結果返回到正確的地址。

? ? 下圖標出了上述的六個步驟:


5. JVM扮演的角色

? ? 使用servlet,就要允許JVM為處理每個請求分配獨立的Java線程,這也是Servlet容器主要的優勢之一。每一個servlet都是一個擁有能響應HTTP請求的特定元素的Java類。Servlet容器的主要作用是將請求轉發給相應的servlet進行處理,并在JVM處理完請求后,將動態生成的結果返回至正確的地址。在大多數情況下,servlet容器運行在獨立的JVM中,但如果容器需要多個JVM,也有相應的解決方案。

相關文章:

1.?Servlet重定向至重命名后的文件下載

2.?在Java Servlet中使用Aapache commons FileUpload組件實現文件上傳(包含源碼)

3.?為什么我們需要諸如Struts 2一類的Java Web框架?

4.?從JAX-WS Web Service中獲取ServletContext

總結

以上是生活随笔為你收集整理的什么是Servlet容器?的全部內容,希望文章能夠幫你解決所遇到的問題。

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