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

JSP pageContext 內置對象詳解:萬能上下文與標簽庫開發核心

     編輯:關於JSP

pageContext 是 JSP 頁面級上下文對象,雖作用域最小,但功能最全,被稱為「萬能對象」。它不僅封裝了其他 8 大內置對象的引用,還提供頁面轉發、異常處理、標簽庫開發等核心 API。

pageContext 對象本質

  • 類型:javax.servlet.jsp.PageContext 實例(抽象類)
  • 作用域:頁面級(PAGE_SCOPE 常量)
  • 核心地位:JSP 標簽庫開發、自定義標簽處理器的核心交互對象

核心方法與常量

pageContext 方法表

1. 內置對象訪問器(獲取其他 8 大對象)

HttpServletRequest request = pageContext.getRequest();
HttpServletResponse response = pageContext.getResponse();
HttpSession session = pageContext.getSession();
ServletContext application = pageContext.getServletContext();
ServletConfig config = pageContext.getServletConfig();
JspWriter out = pageContext.getOut();
Object page = pageContext.getPage();
Exception exception = pageContext.getException();

2. 作用域常量與屬性操作

  • PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE
  • setAttribute(name, value, scope):指定作用域存儲
  • getAttribute(name, scope):指定作用域獲取
  • findAttribute(name):按 page→request→session→application 順序查找
  • removeAttribute(name, scope):指定作用域移除

3. 頁面控制核心 API

  • forward(String path):請求轉發(等效 request.getRequestDispatcher().forward())
  • include(String path):頁面包含(等效 request.getRequestDispatcher().include())
  • handlePageException(Exception e):異常處理,轉發到錯誤頁

實戰:使用 pageContext 實現跳轉

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<% 
// pageContext_01.jsp
pageContext.forward("pageContext_02.jsp"); // 服務端跳轉
%>

標簽庫開發中的核心地位

自定義標簽處理器(Tag/SimpleTag)通過 setPageContext(PageContext pc) 獲取頁面上下文,進而訪問請求、會話、輸出流等資源,實現標簽邏輯與頁面數據交互。掌握 pageContext 是進階 JSP 標簽庫開發的前置條件。

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