首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java Web 學習總結:Servlet 開發核心知識點全覽

     編輯:Java 綜合教學

Java Web 學習總結:Servlet 開發核心知識點全覽

Servlet 是 Java Web 開發的基石,所有框架(Spring MVC、Struts、JSF)底層皆基於 Servlet API。本文總結 Servlet 核心概念、生命週期、URL 映射配置、執行流程等必考知識點。

1. Servlet 簡介

  • 運行在 Servlet 容器(Tomcat、Jetty、Undertow)中的 Java 類
  • 實現 javax.servlet.Servlet 介面,通常繼承 HttpServlet
  • 處理 HTTP 請求(GET/POST/PUT/DELETE 等),生成動態回應

2. Servlet 生命週期

  1. 實例化:容器載入類、實例化(預設首次請求時,或啟動時 load-on-startup)
  2. 初始化:調用 init(ServletConfig),僅執行一次
  3. 服務:每請求調用 service(req, resp),HTTP 請求分派至 doGet/doPost 等
  4. 銷毀:容器關閉或重新部署時調用 destroy(),釋放資源

3. Servlet 執行流程圖

Servlet 執行流程

流程:客戶端請求 → Web 容器 → 解析 URL → 映射到 Servlet → 建立 Request/Response → 呼叫 service() → Servlet 處理業務 → 返回回應 → 容器發送給客戶端

4. URL 映射配置(web.xml)

單一 Servlet 映射多個 URL

<servlet>
    <servlet-name>ServletDemo1</servlet-name>
    <servlet-class>com.example.ServletDemo1</servlet-class>
</servlet>

<!-- 同一 Servlet 映射多個 URL 模式 -->
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/servletDemo1</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/1.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/2.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/3.do</url-pattern>
</servlet-mapping>

URL 模式匹配規則優先級

  1. 精確匹配:/abc/action.do
  2. 路徑匹配:/abc/*
  3. 副檔名匹配:*.do、*.action
  4. 預設 Servlet:/

5. Servlet 3.0+ 註解配置(無 web.xml)

@WebServlet(
    name = "ServletDemo1",
    urlPatterns = {"/servletDemo1", "/1.html", "/2.htm", "/3.do"},
    loadOnStartup = 1
)
public class ServletDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
            throws ServletException, IOException {
        resp.getWriter().write("Hello Servlet 3.0+");
    }
}

6. 核心 API 常用方法

介面常用方法
HttpServletRequestgetParameter(), getParameterValues(), getHeader(), getCookies(), getSession(), getRequestDispatcher()
HttpServletResponsesetStatus(), setHeader(), addCookie(), sendRedirect(), getWriter(), getOutputStream()
ServletContextgetInitParameter(), getAttribute(), setAttribute(), getResourceAsStream(), getRequestDispatcher()
ServletConfiggetInitParameter(), getServletName(), getServletContext()

7. 重點總結

  • Servlet 非線程安全,實例變數可能併發問題,請使用區域變數或 ThreadLocal
  • forward(轉發)保持請求,地址欄不變;redirect(重導向)新請求,地址欄改變
  • 監聽器(Listener)、過濾器(Filter)是 Servlet 規範三大組件,配合 Servlet 構建完整 Web 應用

掌握 Servlet 原理,是深入理解 Spring MVC、過濾器鏈、攔截器、異步 Servlet 等進階主題的前提。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved