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

JavaWeb 核心知識體系總結:HTTP 狀態碼、請求響應頭、Cookie、JSP/Servlet、Tomcat 配置全覽

     編輯:Java 綜合教學

HTTP 狀態碼速查表(必背核心)

分類代碼含義典型場景
1xx 信息100Continue大文件上傳前確認
101Switching ProtocolsWebSocket 升級
2xx 成功200OK正常響應
201CreatedREST POST 成功
204No ContentDELETE 成功無體
3xx 重定向301Moved PermanentlySEO 永久遷移
302Found臨時重定向(登錄跳轉)
304Not Modified緩存命中(配合 ETag/Last-Modified)
4xx 客戶端錯誤400Bad Request參數校驗失敗
401Unauthorized未登錄/Token 失效
403Forbidden無權限
404Not Found資源不存在
405Method Not AllowedHTTP 方法不支援
415Unsupported Media TypeContent-Type 錯誤
5xx 服務端錯誤500Internal Server Error代碼異常未捕獲
502Bad GatewayNginx 代理後端掛了
503Service Unavailable過載/維護中
504Gateway Timeout代理超時

常見請求頭與響應頭對照

類別頭部作用示例
請求頭Accept可接受響應類型application/json
Accept-Encoding支援壓縮格式gzip, deflate, br
Accept-Language偏好語言zh-CN,zh;q=0.9,en;q=0.8
Authorization認證憑證Bearer eyJhbGciOi...
Content-Type請求體格式application/x-www-form-urlencoded
Cookie攜帶 CookieJSESSIONID=abc; user=tom
Host目標主機:端口api.example.com:443
Referer來源頁面https://example.com/list
User-Agent客戶端標識Mozilla/5.0 (Windows NT 10.0...)
響應頭Content-Type響應體格式+編碼application/json;charset=UTF-8
Content-Encoding響應體壓縮gzip
Set-Cookie下發 Cookiesid=xyz; Path=/; HttpOnly; Secure
Cache-Control緩存控制no-cache, max-age=3600
ETag資源版本標識"abc123"
Last-Modified最後修改時間Wed, 21 Oct 2015 07:28:00 GMT
Location重定向目標/login?redirect=/home
Server服務器標識Apache-Coyote/1.1
Transfer-Encoding分塊傳輸chunked
X-Frame-Options防點擊劫持DENY / SAMEORIGIN

Cookie 機制精要

  • 本質:服務器發送 Set-Cookie,瀏覽器自動存儲,後續請求自動攜帶 Cookie。
  • 屬性:Domain、Path、Expires/Max-Age、HttpOnly(防 XSS)、Secure(僅 HTTPS)、SameSite(防 CSRF:Strict/Lax/None)。
  • 會話 vs 持久:無 Expires/Max-Age → 會話級(關閉瀏覽器失效);有 → 持久化。

JSP 動態/靜態 Include 差異

特性動態 <jsp:include>靜態 <%@ include %>
編譯產物獨立 Servlet,運行時 include()合併為單一 Servlet,編譯期內聯
檢查變更每次請求檢查不檢查(需重新編譯主頁)
參數傳遞支援 <jsp:param>不支援
適用場景動態片段、頻繁變更靜態頁腳、版權聲明、通用頭部

GET vs POST 本質區別

維度GETPOST
語義獲取資源(冪等、安全)提交實體(非冪等、副作用)
參數位置URL 查詢串請求體
長度限制瀏覽器/服務器限制(~2KB~8KB)理論無限(受服務器配置)
緩存可被緩存、書籤、歷史記錄不緩存
安全性參數暴露在 URL/日誌相對隱蔽(仍明文傳輸)
幂等性是否

JSP 執行流程

  1. 瀏覽器請求 .jsp → Web 容器(Tomcat)接收。
  2. JSP 引擎(Jasper)將 JSP **翻譯**為 _jspServlet.java(繼承 HttpJspBase)。
  3. javac 編譯為 .class 字節碼。
  4. 類加載器加載,實例化 Servlet,調用 _jspService()。
  5. 輸出 HTML 寫入 HttpServletResponse,返回瀏覽器。

本質:JSP = Servlet + 模板引擎。首次訪問慢(編譯),後續快(類已加載)。

Servlet vs JSP 優缺點對比

維度ServletJSP
視圖渲染手動拼接 HTML/JSON,痛苦模板語法,HTML 混寫 Java,直觀
控制邏輯天然適合 Controller、Filter、攔截器業務邏輯混雜,違反關注點分離
MVC 角色**Controller****View**
現代定位REST API、微服務端點、過濾鏈傳統項目維護、郵件模板、報表頁面

Tomcat 端口修改

<!-- conf/server.xml -->
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<!-- 修改 port="80" 需 root/admin 權限,生產建議 Nginx 反代 80→8080 -->
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved