JavaWeb —— JSP 指令

【概述】

JSP 指令主要用于设定整个 JSP 页面范围内都有效的相关信息,其是被服务器解释并执行的,只是告诉 JSP 引擎如何处理 JSP 页面中的其他部分,不会产生任何内容输出到网页中。

其语法格式为:<%@ 指令名 属性1="属性值1" 属性2="属性值2" ... %>

JSP 中,有 page、include、taglib 三条指令,不同指令包含不同的属性,一条指令中可设置多个属性。

【page 指令】

page 指令是 JSP 页面最常用的指令,用于定义整个 JSP 页面的相关属性,这些属性在 JSP 中被服务器解析成 Servlet 时会转换成相应的 Java 代码。

该指令可以放在 JSP 页面中的任何位置,但无论放置在何位置,其作用的都是整个 JSP 页面,为保证程序的可读性和规范性,常放置在 JSP 页面的起始位置。

语法格式:<%@ page attr1="value1" attr2="value2" ... %>

常用的属性有:

language 用于设置 JSP 页面使用的语言,目前只支持 Java
extends 设置 JSP 页面继承的 Java 类,该属性不常用,且有可能会影响服务器的性能
import 设置 JSP 导入的类包,在嵌入 Java 代码片段时,这些 Java 代码在调用 API 时需要导入相应的包
contentType 用于设置 JSP 页面的响应类型,指定返回页面的类型与编码类型,实际调用的是 JSP 页面的 response 对象内置的 response.setContextType() 方法,而其属性值可在 Tomcat 服务器 conf 目录下的 web.xml 中找到,最常用的为 "text/html; charset=UTF-8"
pageEncoding 设置 JSP 页面编码格式,JSP 页面中的所有代码都使用该属性指定的字符集,其值通常与 contentType 属性中的 charse 一致
session 指定 JSP 页面能否使用 session 内置对象,其值有 "true"、"false"
isErrorPage 指定当前 JSP 页面是否设置为错误处理页面(用于以处理另一 JSP 页面的错误),其值有 "true"、"false"
errorPage 用于指定处理当前 JSP 页面异常错误的另一 JSP 页面,其属性值是设为错误处理页面的 url 字符串,且指定的 JSP 错误处理页面必须设 isErrorPage 属性为 "true"
isELIgnored 指定当前 JSP 页面是否可以使用 EL 表达式,通常取值为 "true"
buffer 设置JSP的out输出对象使用的缓冲区大小,默认为8KB,且单位只能使用KB,建议使用8的倍数16、32、64、128等
autoFlush 设置JSP页面缓存满时,是否自动刷新缓存,默认值为 "true",若设为"false",则当缓存满时将抛出异常

注:一般情况下,不建议通过输入 URL 的方式来直接访问错误处理页面,因此,在 Tomcat 服务器中,一般将错误处理页面放置在 WEB-INF 目录下,因为在该目录下的文件,无法通过输入 URL 的方式来进行访问,只能通过转发来进行访问

除 isErrorPage 与 errorPage 配合使用外,还可以通过配置当前 WEB 应用的 web.xml 文件来配置错误页面

例如:

<error-page>
    <error-code>500</error-code><!--  指定出错的代码 -->
    <location>/WEB-INF/error.JSP</location><!-- 指定响应页面的位置 -->
</error-page>

<error-page>
    <exception-type>java.lang.ArithmeicException</exception-type><!-- 指定异常类型 -->
    <location>/WEB-INF/error.JSP</location><!-- 指定响应页面的位置 -->
</error-page>

page 指令实例

<!-- 设置JSP页面使用Java语言 -->
<%@ page language="java" %>    

 <!-- 导入java.util包 -->
<%@ page import="java.util.*" %>   

<!-- 编码格式默认为ISO-8859-1,该编码格式不支持中文,若想支持中文,设置为GBK或UTF-8均可 -->
<%@ page pageEncoding="GBK" %>    

<!-- 设置JSP页面的MIME类型与字符编码 -->
<%@ page contentType="text/html;charset=UTF-8" %>    

<!-- 允许JSP页面使用HTTP的会话对象 -->
<%@ page session="true" %>

<!-- 设置out输出对象缓冲区大小为32KB -->
<%@ page buffer="32KB" %>

<!-- 设置JSP页面不自动刷新缓存 -->
<%@ page autoFlush="false" %>

<!-- 将当前JSP页面设为错误处理页面 -->
<%@ page isErrorPage="true" %>

<!-- 设置处理JSP页面异常错误的页面 -->
<%@ page ErrorPage="error/loginErrorPage.jsp" %>

【include 指令】

include 指令用于通知 JSP 引擎在翻译当前 JSP 页面时,将其他文件合并进当前 JSP 页面转换的 Servlet 源文件中,即将当前 JSP 界面与静态引入的界面进行结合最终成为一个 Servlet,因此在包含和被包含的文件中不能有相同名称的变量。

用 include 指令将文件插入 JSP 页面的方式称为静态引入。

在应用 include 指令进行文件包含时,为使整个页面的层次结构不发生冲突,建议在被包含的页面中将 <html>、<body> 等标记删除,因为在包含该页面的文件中已指定了这些标记。

语法格式:<%@ include file="path" %>

该指令只有一个 file 数学,用于指定要包含文件的相对路径,且不能是通过 <%= %> 表达式所代表的文件。

<%@ include file="top.jsp" %>
<%@ include file="copyright.jsp" %>

【taglib 指令】

taglib 指令标识声明该页面中所使用的标签库,同时引用该标签库并指定标签的前缀,在页面中引用标签库后,就可通过前缀来引用标签库中的标签。

语法格式:<%@ taglib prefix="tagPrefix" uri="tagURI" %>

prefix 用于指定标签的前缀,该前缀不能命名为 jsp、jspx、java、javax、sun、sunw、servlet;uri 用于指定标签库文件的存放位置

例如:

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

<c:forEach>
    ...
</c:forEach>

猜你喜欢

转载自blog.csdn.net/qq_41204918/article/details/90140970
今日推荐