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

Java EE 學習筆記:TCP/IP 模型、HTTP 協議、Servlet 生命周期與 Web 容器核心概念

     編輯:Java 綜合教學

Java EE 學習筆記:TCP/IP 模型、HTTP 協議、Servlet 生命周期與 Web 容器核心概念

整理 Java Web 開發基石知識點,作為快速查閱備忘。

一、TCP/IP 四層模型

層級名稱核心協議/功能
4應用層HTTP、FTP、SMTP、DNS
3傳輸層TCP (可靠連接)、UDP (無連接)
2網絡層IP、ICMP、ARP、路由選擇
1網絡接口層以太網、Wi-Fi、幀封裝/解封裝

二、HTTP 協議核心

請求報文結構

請求行       : GET /index.html HTTP/1.1
消息報頭     : Host: www.example.com
             : User-Agent: Mozilla/5.0
             : Accept: text/html
             : (空行)
請求正文     : username=admin&password=123  (POST 專用)

常用方法:GET (查詢)、POST (提交)、PUT (更新)、DELETE (刪除)。

響應報文結構

狀態行       : HTTP/1.1 200 OK
消息報頭     : Content-Type: text/html; charset=UTF-8
             : Content-Length: 1024
             : (空行)
響應正文     : <html>...</html>

三、靜態 Web vs 動態 Web

特性靜態 Web動態 Web
內容生成預先寫好 HTML服務器動態生成 (JSP/Servlet/模板引擎)
數據庫操作無法直接操作可直接增刪改查
交互性無強 (根據請求返回不同結果)
典型技術HTML/CSS/JSServlet、JSP、Spring MVC、Thymeleaf

四、Web 容器

  • 職責:管理 Servlet 生命周期、映射 URL、提供 HTTP 運行環境、線程池管理。
  • 主流:Tomcat、Jetty、Undertow、WebLogic、WebSphere。

五、Servlet 生命周期

  1. 實例化:容器調用無參建構子 (僅一次)。
  2. 初始化:調用 init(ServletConfig) (僅一次)。
  3. 服務:每請求一線程調用 service(req, resp),分發至 doGet/doPost 等。
  4. 銷毀:容器關閉或重新部署時調用 destroy() (僅一次)。

特殊情況:長期未訪問可能被容器卸載,再次訪問觸發重新初始化。

六、Servlet 映射匹配規則 (web.xml)

容器按優先級查找:

  1. 精確匹配:<url-pattern>/user/login</url-pattern>
  2. 目錄匹配:<url-pattern>/user/*</url-pattern> (最長路徑優先)
  3. 擴展名匹配:<url-pattern>*.do</url-pattern>
  4. 默認 Servlet:<url-pattern>/</url-pattern> (處理靜態資源)

CGI 缺陷對比:每請求啟動一進程,資源消耗大、不支援高併發;Servlet 容器線程池模型完美解決。

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