JSP 指令

JSP 指令(Directive)是告知 JSP 容器如何编译当前 JSP 页面的配置型标签,作用于整个 JSP 页面,不产生任何输出内容,仅影响 JSP 的编译过程。

语法格式:

1
<%@ 指令名 属性1="值1" 属性2="值2" ... %>

核心分类(3 类常用指令):

(1)page 指令(最核心)

作用:定义 JSP 页面的全局属性(编码、语言、错误页面、会话等)。常用属性:

  • language:指定页面使用的脚本语言(默认java);
  • contentType:设置响应的 MIME 类型和编码(如text/html;charset=UTF-8);
  • pageEncoding:设置 JSP 页面本身的编码(推荐与contentType编码一致);
  • import:导入 Java 类 / 包(如import="java.util.List,java.sql.Connection");
  • session:是否启用会话(默认true,设为false则无法使用session隐式对象);
  • errorPage:指定当前页面抛出异常时跳转的错误页面;
  • isErrorPage:是否为错误页面(设为true则可使用exception隐式对象);
  • buffer:设置out对象的缓冲区大小(如8kb,默认 8KB;设为none则无缓冲);
  • autoFlush:缓冲区满时是否自动刷新(默认true;设为false则缓冲区满时抛异常)。

示例:

1
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" import="java.util.Map" session="true" %>
(2)include 指令

作用:静态包含另一个文件(HTML、JSP、文本文件等),在编译阶段将被包含文件的内容直接嵌入当前 JSP 页面,最终生成一个 Servlet。示例:

1
<%@ include file="header.jsp" %>
(3)taglib 指令

作用:引入自定义标签库或标准标签库(JSTL),并指定标签前缀。示例(引入 JSTL 核心标签库):

1
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

核心特点:

  • 指令作用域为整个页面,位置不限(通常放在页面顶部);
  • 指令不产生客户端可见的输出,仅影响 JSP 编译为 Servlet 的过程。