在 B/S 架構中,瀏覽器發起請求,伺服器回應響應,這一切的基石是 TCP/IP 協議,應用層則採用 HTTP 協議。Tomcat 作為常見的 Servlet 容器,其 6.0 版本支援 HTTP/1.1。當伺服器接收到請求時,會將其封裝為 HttpServletRequest 物件;同理,響應被封裝為 HttpServletResponse。本文將系統梳理這兩個核心介面的關鍵 API 與常見操作。
getMethod():獲取請求方法(GET、POST 等)。getRequestURI() / getRequestURL():獲取請求資源路徑或完整 URL。getProtocol():獲取 HTTP 協議版本。getHeader(String name):根據頭名稱獲取對應值。getHeaderNames():獲取所有頭名稱的枚舉。getInputStream():獲取請求體原始位元組流。請求參數常涉及編碼問題,可透過 setCharacterEncoding() 設定,或採用位元組強制轉換、在 XML 配置中指定編碼等方式解決。
響應同樣需注意編碼設定,可在響應頭中宣告。以下列出開發中高頻使用的響應頭:
Location: https://example.com Server: Apache Tomcat Content-Encoding: gzip Content-Length: 80 Content-Language: zh-CN Content-Type: text/html; charset=UTF-8 Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT Refresh: 1;url=https://example.com Content-Disposition: attachment; filename=aaa.zip Transfer-Encoding: chunked Set-Cookie: SS=Q0=5Lb_nQ; path=/search Expires: -1 Cache-Control: no-cache Pragma: no-cache Connection: keep-alive
掌握 HttpServletRequest 與 HttpServletResponse 的核心 API、編碼處理及常用響應頭,是 Servlet 開發的基礎。實際專案中,善用這些 API 能有效解決參數接收、檔案上傳下載、跨域、快取控制等常見需求。