1. 程式人生 > >servlet 核心技術

servlet 核心技術

cse doget 事件監聽器 跟蹤 形式 lte ava 參數 接口

servlet 生命周期

在 servlet 生命周期中,servlet 容器完成加載 servlet 類和實例化一個 servlet 實例,並通過3個方法來完成生命周期中的其他階段。

  • init() 方法:負責 servlet 的初始化工作,該方法由 servlet 容器調用完成。
  • service() 方法:處理客戶端請求,並返回響應結構。
  • destroy() 方法:在 servlet 容器卸載 servlet 之前被調用,釋放系統資源。

使用方法Servlet

創建 servlet 類的 java 文件,然後在 WEB-INF 中的 web.xml 中修改配置,配置過程是由<servlet>

<servlet-mapping> 元素實現的。

舉個例子:

  <!-- 配置Servlet -->
    <servlet>
        <servlet-name>ServletSample</servlet-name>
        <servlet-class>sunyang.ServletSample</servlet-class>
    </servlet>
    <!-- 配置Servlet映射路徑 -->
    <servlet-mapping>
        <servlet-name>ServletSample</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>

或者是使用註解的形式(使用的是 urlPatterns 屬性)

如:

@WebServlet(name="Servletsample", urlPatterns="/HelloWorld")
  • 開發一個普通的 Servlet 只需拓展 javax.serlvet.GenericServlet即可,GenericServlet 類定義了一個普通的,協議無關的 servlet。

    在拓展 GenericServlet 時必須要重載 service() 方法。

  • 要創建一個用於 web 的 HTTP Servlet,則需要拓展 javax.servlet.http.HttpServet。HttpServlet 用於處理 HTTP 請求。

    需要重載 HttpServlet 的 doGet() 方法和 doPost() 方法。

獲取運行環境信息

Servlet 信息包括 Servlet 的初始化信息,Servlet 的初始化參數名和 Servlet 名稱,這些信息通常配置在web.xml 中,可通過 javax.servlet.ServletConfig 接口中定義的方法來獲取。

Servlet 中的會話設置

Servlet api 內置了會話跟蹤支持,那就是 HttpSession 對象。

Servlet 中異常處理

可以使用兩種處理異常的方式:

  • 在 try/catch 語句塊中直接生成並輸出異常信息的頁面,或者將異常轉發到異常處理的 Servlet 或 JSP 頁面中。
  • 在 web.xml 中通過<error-page>元素指定異常處理

Servlet 過濾器

在 web.xml 中定義,<filter>元素用於配置 Servlet 過濾器。

Servlet 監聽器

Servlet 監聽器類型:

  • ServletContext 事件監聽器:用於監聽應用程序環境對象。
  • HttpSession 事件監聽器:用於監聽用戶會話對象。
  • ServletRequest 事件監聽器:用於監聽請求消息對象。

在 web.xml 中定義, `<listener>元素用於配置Servlet 過濾器。

servlet 核心技術