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

JavaWeb 回顧:JSP 運行機制、語法與九大內置對象

     編輯:Java 綜合教學

一、為什麼需要 JSP?

早期 Servlet 中混合大量 HTML,導致頁面邏輯耦合,前後端無法並行開發。Sun 推出 JSP 實現視圖與控制分離,提升開發效率。

二、JSP 運行機制:本質是 Servlet

訪問 index.jsp 時,容器(Tomcat)將其編譯為 index_jsp.java(繼承 HttpJspBase),再編譯為 class 執行。

關鍵方法對應:

  • _jspInit() → init()
  • _jspService() → service()
  • _jspDestroy() → destroy()

靜態 HTML 被轉為 out.write(),動態腳本直接嵌入 Java 代碼。

JSP 編譯流程

Servlet vs JSP 差異

  1. JSP 首次訪問需編譯,Servlet 直接執行
  2. JSP 允許 Java/HTML 混寫,Servlet 完全分離
  3. JSP 側重視圖渲染,Servlet 側重控制邏輯

三、JSP 語法三大元素

1. 指令元素(<%@ ... %>)

  • page:定義頁面屬性(language、contentType、pageEncoding、import、isELIgnored、session、errorPage、buffer 等)
  • include:靜態包含文件(編譯階段合併),支持 html、jsp、文本、代碼片段
  • taglib:引入自定義標簽庫

2. 腳本元素

  • 聲明 <%! int i=1; %>:類成員變量/方法,注意線程安全
  • 腳本段 <% out.print(i); %>:請求處理期執行的 Java 代碼
  • 表達式 <%= "張三" %>:輸出值到響應流,無分號

3. 動作元素(XML 風格)

  • jsp:useBean、jsp:setProperty、jsp:getProperty:JavaBean 操作
  • jsp:forward、jsp:include:頁面跳轉/包含

四、九大內置對象

對象類型說明
requestHttpServletRequest請求域
responseHttpServletResponse響應域
outJspWriter輸出流
pageObject當前 Servlet 實例
pageContextPageContext頁面上下文,訪問所有屬性
applicationServletContext應用域
configServletConfig配置對象
sessionHttpSession會話域
exceptionThrowable異常對象(錯誤頁可用)

五、四大作用域

  • page:僅當前頁有效
  • request:一次請求鏈有效
  • session:用戶會話期間有效
  • application:整個 Web 應用生命周期有效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved