Servlet是什麼?

Java Servlet 是運行在 Web 服務器應用服務器上的程序。

Java Servlet是一個基於Java技術的Web組件,用於動態生成內容(HTML、JS),提供Web Server與Web Application的橋樑,通過Web Client達到與Web Server之間的動態交互

Java Servlet來自 Web 瀏覽器或其他 HTTP 客戶端的請求HTTP 服務器上的數據庫或應用程序之間中間層

使用 Servlet,可以收集來自網頁表單的用戶輸入,呈現來自數據庫或者其他源的記錄,還可以動態創建網頁。

Java Servlet 通常情況下與使用 CGI(Common Gateway Interface,公共網關接口)實現的程序可以達到異曲同工的效果。但是相比於 CGI,Servlet 有以下幾點優勢

  1. 性能明顯更好。
  2. Servlet 在 Web 服務器的地址空間內執行 。這樣它就沒有必要再創建一個單獨的進程來處理每個客戶端請求。
  3. Servlet 是 獨立於平臺的,因爲它們是用 Java 編寫的。
  4. 服務器上的 Java 安全管理器執行了一系列限制,以保護服務器計算機上的資源。因此, Servlet 是可信的
  5. Java 類庫的全部功能對 Servlet 來說都是可用的。它可以通過 sockets 和 RMI 機制與 applets、數據庫或其他軟件進行交互。

CGI與Servlet的區別:

  • CGI:當Web Client發起請求時,CGI會啓動一個 進程調用,並把結果返回給Web Client(由於進程調用,進程之間實例是 無法共享實例)。
  • Servlet:當Web Client發起請求時,Web Server(符合Servlet規範的容器:Tomcat、Jetty)會啓動一個線程調度(根據請求的URL,Match到具體的的Servlet,並調用(委託)相應的Servlet的service方法。由於線程調度,線程之間的實例是可以共享的,所以Servlet是線程不安全的對象)
  • -
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章