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

JSP/Servlet 核心知識體系速成:從 Servlet 三要素到 MVC 架構全景圖

     編輯:關於JSP

一、Servlet 核心三要素

  1. 繼承 HttpServlet
  2. 實現 doGet() 或 doPost()
  3. web.xml 配置 <servlet> + <servlet-mapping>(Servlet 3.0+ 可用 @WebServlet 註解替代)

二、核心 API 速查

對象常用方法作用
HttpServletRequestgetParameter/Values/Map、get/setAttribute、setCharacterEncoding請求參數、屬性傳遞、編碼設置
HttpServletResponsesendRedirect、getWriter、setContentType重定向、輸出流、響應類型編碼
HttpSessionget/setAttribute、invalidate、setMaxInactiveInterval會話級數據存儲
ServletContextget/setAttribute、getRealPath、getResourceAsStream應用級共享數據、資源訪問

三、四大會話跟蹤技術對比

方式原理優點缺點
HttpSession服務端內存 + Cookie(JSESSIONID)安全、容量大、對象任意集群需同步、消耗內存
Cookie客戶端鍵值對持久化、跨會話大小限 4KB、用戶可禁用、不安全
隱藏表單域<input type="hidden">無需 Cookie 支持僅限表單提交、明文可見
URL 重寫參數拼接在鏈接無 Cookie 也能工作URL 醜陋、易洩露、需全站改造

四、請求轉發 vs 重定向 本質區別

特性forward (內部轉發)sendRedirect (外部重定向)
請求/響應次數1 次2 次
request 域共享是否
瀏覽器地址欄不變更新
可訪問範圍當前 Web 應用內部任意 URL
效率高稍低

五、三大標準作用域

request < session < ServletContext(生命周期由短到長)
共同方法:setAttribute/getAttribute/removeAttribute

六、JSP 七大構成元素

  1. 靜態內容 (HTML)
  2. 指令:<%@ page/include/taglib ... %>
  3. 表達式:<%= expr %>
  4. Scriptlet:<% java code %>
  5. 聲明:<%! field/method %>
  6. 動作:<jsp:useBean/setProperty/forward/include...>
  7. 註釋:<%-- 服務端 --%> / <!-- 客戶端 -->

七、JSP 執行生命周期

  1. 翻譯:.jsp → .java (Servlet)
  2. 編譯:.java → .class
  3. 執行:容器實例化 Servlet,調用 service()

首次訪問慢(翻譯+編譯),後續直接執行 .class,速度快。

八、九大隱式對象

分類對象類型
輸入/輸出request, response, outHttpServletRequest, HttpServletResponse, JspWriter
作用域pageContext, request, session, applicationPageContext, HttpServletRequest, HttpSession, ServletContext
Servlet 相關page, configObject(this), ServletConfig
異常exceptionThrowable (僅錯誤頁)

九、JavaBean 規範

  1. public class
  2. public 無參構造器
  3. private 屬性 + public getter/setter

十、標準動作標籤速查

標籤用途關鍵屬性
useBean創建/查找 Beanid, class, scope
setProperty賦值name, property, value/param/*
getProperty取值輸出name, property
forward內部轉發page
include動態包含page, flush

十一、EL 表達式 (${...})

  • 運算符:算術、關係、邏輯、empty、?.、[]
  • 隱式對象:param, paramValues, header, cookie, pageScope, requestScope, sessionScope, applicationScope, pageContext
  • 搜索順序:page → request → session → application

十二、JSTL 核心標籤庫 (c:)

  • 通用:set, out, remove
  • 流程:if, choose/when/otherwise
  • 迭代:forEach, forTokens

十三、自定義標籤開發流程

  1. 標籤處理器:繼承 TagSupport (無體) 或 BodyTagSupport (有體),重寫 doStartTag/doEndTag/doAfterBody
  2. TLD 文件:/WEB-INF/*.tld 描述標籤屬性、體內容類型
  3. JSP 引用:<%@ taglib uri="..." prefix="..." %>

十四、Filter 過濾器

生命周期:init → doFilter → destroy
鏈式調用:FilterChain.doFilter(req, res) 傳遞給下一個過濾器或 Servlet。

十五、MVC 設計模式與 Model I/II

模式結構角色分工
Model IJSP + JavaBeanJSP 兼任 View/Controller,Bean 為 Model
Model IIJSP + Servlet + JavaBeanServlet=Controller, JSP=View, Bean=Model
標準 MVC通用架構模式Model(數據/業務), View(展示), Controller(流程控制)

關係:Model II 是 MVC 在 JSP/Servlet 技術棧下的具體實現。

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