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

Servlet 核心解析:HttpServletRequest 與 HttpServletResponse 深度指南

     編輯:Java 綜合教學

請求處理流程

B/S 架構下,瀏覽器發起 HTTP 請求(TCP/IP 協議棧,應用層 HTTP/1.1),Tomcat 將原始報文封裝為 HttpServletRequest 物件,派發至對應 Servlet 的 doGet()/doPost() 方法。

請求行 API

  • getMethod():GET/POST/PUT/DELETE 等
  • getRequestURI() / getRequestURL():資源路徑
  • getProtocol():HTTP/1.1

請求頭 API

  • getHeader(String name):單值
  • getHeaders(String name):多值(如 Cookie)
  • getHeaderNames():所有頭名稱枚舉

請求體與參數

  • getParameter(String name):表單/查詢字串參數(自動解碼)
  • getParameterMap():所有參數 Map
  • getInputStream():原始二進制流(JSON/XML 請求體)
  • getReader():字元流(需正確設定編碼)

編碼處理

// POST 請求體編碼(必須在讀取參數前調用)
request.setCharacterEncoding("UTF-8");

// GET 參數編碼(Tomcat 8+ 預設 UTF-8,舊版需配置 server.xml URIEncoding)
// 或使用 Filter 統一處理

回應處理流程

Servlet 透過 HttpServletResponse 設定狀態碼、頭、輸出內容。

常用回應頭

頭部說明典型值
Content-TypeMIME 類型與編碼text/html;charset=UTF-8
Location重定向地址/login.jsp
Set-Cookie下發 CookieJSESSIONID=xxx; Path=/; HttpOnly
Cache-Control快取控制no-cache, no-store, must-revalidate
Content-Disposition下載檔名attachment; filename="report.pdf"

狀態碼分類

  • 2xx:成功(200 OK)
  • 3xx:重定向(302 Found, 304 Not Modified)
  • 4xx:客戶端錯誤(400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found)
  • 5xx:伺服器錯誤(500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable)

輸出流選擇

  • getWriter():字元輸出(HTML/JSON),需先 setContentType("text/html;charset=UTF-8")
  • getOutputStream():二進制輸出(檔案下載、圖片),不可與 getWriter() 混用
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved