1. 程式人生 > >什麽是 servlet?

什麽是 servlet?

bullet 文件 session 程序 ibm 周期 time 事件 run

什麽是 servlet?

  作為一名專業編程人員,您碰到的大多數 Java servlet 都是為響應 Web 應用程序上下文中的 HTTP 請求而設計的。因此,javax.servletjavax.servlet.http 包中特定於 HTTP 的類是您應該關心的。

在創建一個 Java servlet 時,一般需要子類 HttpServlet。該類中的方法允許您訪問請求和響應包裝器(wrapper),您可以用這個包裝器來處理請求和創建響應。

  當然,HTTP 協議不是特定於 Java 的。它只是一個規範,定義服務請求和響應的大致式樣。Java servlet 類將那些低層的結構包裝在 Java 類中,這些類所包含的便利方法使其在 Java 語言環境中更易於處理。正如您正使用的特定 servlet 容器的配置文件中所定義的,當用戶通過 URL 發出一個請求時,這些 Java servlet 類就將之轉換成一個 HttpServletRequest

,並發送給 URL 所指向的目標。當服務器端完成其工作時,Java 運行時環境(Java Runtime Environment)就將結果包裝在一個 HttpServletResponse 中,然後將原 HTTP 響應送回給發出該請求的客戶機。在與 Web 應用程序進行交互時,通常會發出多個請求並獲得多個響應。所有這些都是在一個會話語境中,Java 語言將之包裝在一個 HttpSession 對象中。在處理響應時,您可以訪問該對象,並在創建響應時向其添加事件。它提供了一些跨請求的語境。

  容器(如 Tomcat)將為 servlet 管理運行時環境。您可以配置該容器,定制 J2EE 服務器的工作方式,而且您必須

配置它,以便將 servlet 暴露給外部世界。正如我們將看到的,通過該容器中的各種配置文件,您在 URL(由用戶在瀏覽器中輸入)與服務器端組件之間搭建了一座橋梁,這些組件將處理您需要該 URL 轉換的請求。在運行應用程序時,該容器將加載並初始化 servlet,管理其生命周期

  當我們說 servlet 具有生命周期時,只是指在調用 servlet 時,事情是以一種可預見的方式發生的。換言之,在任何 servlet 上創建的方法總是按相同的次序被調用的。下面是一個典型場景:

  • 用戶在瀏覽器中輸入一個 URL。Web 服務器配置文件確定該 URL 是否指向一個由運行於服務器上的 servlet 容器所管理的 servlet。
  • 如果還沒有創建該 servl
  • et 的一個實例(一個應用程序只有一個 servlet 實例),那麽該容器就加載該類,並將之實例化。
  • 該容器調用 servlet 上的 init()
  • 該容器調用 servlet 上的 service(),並在包裝的 HttpServletRequestHttpServletResponse 中進行傳遞。
  • 該 servlet 通常訪問請求中的元素,代表其他服務器端類來執行所請求的服務並訪問諸如數據庫之類的資源,然後使用該信息填充響應。
  • 如果有必要,在 servlet 的有用生命結束時,該容器會調用 servlet 上的 destroy() 來清除它。

致敬 IBM

什麽是 servlet?