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

JSP 核心技術全解析:指令、動作標簽與內置對象

     編輯:關於C

JSP 基礎知識體系

什麼是 JSP

  • 嵌入 Java 代碼的 HTML,由靜態 HTML、JSP 標簽、Java 代碼組成
  • 服務端技術,首次訪問時自動轉換為 Servlet 編譯
  • 單實例多線程模型:_jspInit() 初始化,_jspService() 處理每個請求
  • Tomcat 生成文件位置:work/Catalina/localhost/_/org/apache/jsp/

page 指令 15 個常用屬性

屬性說明
language默認腳本語言
extends繼承的 Java 類
import導入類包
pageEncoding頁面編碼
contentTypeMIME 類型與字符編碼
session是否使用 HTTP Session
bufferout 對象緩衝區大小
autoFlush緩衝區滿時是否自動刷新
isErrorPage是否為錯誤處理頁
infogetServletInfo() 返回字符串
errorPage異常轉向頁面
isThreadSafe是否允許並行訪問
isELIgnored是否忽略 EL 表達式

示例

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

第一個JSP

<%
    Date date = new Date();
    out.print(date);
%>

include 指令 vs 動作標簽

  • 指令:編譯期靜態合併,<%@ include file="..." %>
  • 動作 <jsp:include>:運行期動態包含,支援參數傳遞,flush="true" 必須

taglib 指令

聲明標簽庫:<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>

六大動作標簽詳解

標簽用途關鍵屬性
<jsp:include>包含靜態/動態文件page, flush, <jsp:param>
<jsp:forward>轉發到其他資源page, <jsp:param>
<jsp:useBean>創建/查找 Beanid, scope, class/type/beanName
<jsp:getProperty>輸出 Bean 屬性name, property
<jsp:setProperty>設置 Bean 屬性name, property/param/value/*
<jsp:plugin>嵌入 Applet/JavaBeantype, code, codebase, jreversion

四大內置對象實戰

Request 對象

<%= "請求方式:" + request.getMethod() %>
<%= "字符編碼:" + request.getCharacterEncoding() %>
<%= "協議:" + request.getProtocol() %>
<%= "請求URI:" + request.getRequestURI() %>
<%= "客戶端IP:" + request.getRemoteAddr() %>
<%= "服務器端口:" + request.getServerPort() %>
<%= "Header Host:" + request.getHeader("host") %>

Response 對象

<%
    response.sendRedirect("out.jsp");           // 重定向
    response.setHeader("Cache-Control","no-store"); // 禁用緩存
    response.setHeader("refresh","5;URL=out.jsp");  // 5秒後跳轉
    response.flushBuffer();                     // 強制輸出
%>

Session 對象


<%
    session.setAttribute("username", "felayman");
%>
<jsp:forward page="getsession.jsp"/>


Session: <%= session.getAttribute("username") %>

PageContext 對象

<%
    pageContext.forward("out.jsp");  // 頁面跳轉
%>

總結

掌握 JSP 指令、動作標簽、內置對象是開發動態 Web 頁面的基礎。建議優先使用 JSTL/EL 表達式減少腳本代碼。

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