跳至內容

JavaServlet

出自Taiwan Tongues 台語維基
於 2025年8月22日 (五) 13:03 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

Servlet(Server Applet), 全稱Java Servlet。是用 Java 編寫的侍服器捀程式。其主要的功能佇互動式地瀏覽佮修改的資料,生做動態 Web 內容。狹義的 Servlet 是講 Java 咱語言實現的一个介面,廣義的 Servlet 是講任何實現矣這个 Servlet 介面的類別,一般情形下,人共 Servlet 理解為後者。

Servlet 執行支援 Java 的應用侍服器內底。對實現上講,Servlet 會當回應任何類別型的請求,但是真濟數情形下 Servlet 干焦用來擴充是基於 HTTP 協定的 Web 侍服器。

上早支援 Servlet 標準的是 JavaSoft 的 Java Web Server。此後,一寡其他的因為 Java 的 Web 侍服器開始支援標準的 Servlet。

歷史

工作模式

  • 客戶捀傳送請求到侍服器
  • 侍服器起動閣咻一下 Servlet,Servlet 根據客戶捀請求生成回應內容閣共其傳予侍服器
  • 侍服器共回應倒轉來客戶捀
  • 其他

通用 Servlet

一般來講,通用 Servlet 由 javax . servlet . GenericServlet 實作 Servlet 介面。程式設計人員會當通過使用抑是講繼承這个類別來實現通用 Servlet 應用。

HttpServlet

javax . servlet . http . HttpServlet 實現專門用於回應 HTTP 請求的 Servlet,提供矣回應對應 HTTP 標準請求的 doGet ( )、doPost ( ) 等方法。

性命周期

當 servlet 予部署佇咧應用侍服器內底(應用侍服器內底用管理 Java 組件的部分予人抽象成做容器)以後,由容器控制 servlet 的性命周期。除非特殊指定,抑無佇咧容器咧起動的時陣,servlet 是袂去予人載入的,servlet 干焦會佇第一擺請求的時陣予人載入和實例化。servlet 一旦予人載入,一般袂對容器中刪除,一直到應用侍服器關起來抑是重新啟動。當做容器做記持體回收動作的時陣,servlet 有可能予人刣掉。嘛正正是因為這个原因,第一擺的存取 servlet 所用的時間愛大大於以後存取所用的時間。

servlet 咧侍服器的執行性命周期為,佇第一改請求(抑是其實體予記持體糞埽回收了後才閣予人存取)時被載入並執行一擺初始化方法,綴咧執行正式執行方法,會予人定駐並逐擺被請求的時直接執行正式執行方法,一直到侍服器關起來抑是予清理的時執行一擺銷毀去方法了後實體銷毀。

佮 JSP 的關係

Java 侍服器頁面(JSP)是 HttpServlet 的擴充。因為 HttpServlet 大多數攏是用來回應 HTTP 請求,閣倒轉來 Web 頁面(比如講 HTML、XML), 所以不可避免地,咧編寫 servlet 時陣會牽涉大量的 HTML 內容,這予 servlet 的書寫效率佮可讀性𤆬來真大障礙,JSP 就是佇這个基礎頂懸產生的。其實功能是使用 HTML 的書寫格式,佇適當的所在加入 Java 代碼片段,將程式設計師對複雜的 HTML 中敨放出來,閣較專注射 servlet 本身的內容。

JSP 佇咧頭一改予人存取的時陣予人應用侍服器轉換做 servlet,佇以後的執行中,容器共直接呼叫這 servlet,無閣再存取 JSP 頁面。JSP 的實質猶原是 servlet。

參見

  • Java、JSP、J 二 EE
  • Struts
  • HTTP

參考文獻

外部連結

  • JSR 三百六十九-Java servlet 四配零 documentation
  • JSR 三百四十-Java servlet 三孵一 documentation
  • JSR 三百十五-Java servlet 三-c零 documentation
  • JSR 百五四-Java servlet 二孵四 documentation
  • JSR 五十三-Java servlet 二嬸三 documentation