JSP 指令,指令控制整个 JSP 页面的处理。它向服务器提供有关页面处理的指示。
指令语法:
<%@ directive name [attribute name=“value” attribute name=“value” ........]%>
JSP 中有三种类型的指令:
1)page
指令
2)include
指令
3)TagLib
指令
page
指令
有几个属性,与page
指令一起使用,它们是:
import
session
isErrorPage
errorPage
ContentType
isThreadSafe
extends
info
language
autoflush
buffer
import
此属性用于导入包。在进行编码时,您可能需要包含多个包。在这种情况下,此page
指令的属性非常有用,因为它允许您在逗号(,
)之间用同一位置提及多个包。或者,您可以拥有多个页面元素实例,每个实例都包含不同的包。
导入属性的语法:
<%@page import="value"%>
这里的值是包名。
导入示例: 以下是如何使用page
指令的import
属性导入多个包的示例。
<%@page import="java.io.*%>
<%@page import="java.lang.*%>
<%--Comment: OR Below Statement: Both are Same--%>
<%@page import="java.io.*, java.lang.*"%>
session
通常在构建用户交互式 JSP 应用时,我们确保允许用户访问以获取他/她的个人数据,直到会话处于活动状态。考虑一个登录到您的银行帐户的示例,我们可以访问您的所有数据,直到我们退出(或会话到期)。为了维护页面的会话,会话属性应为true
。
此属性用于处理 JSP 页面的 HTTP 会话。它可以有两个值:true
或false
。会话属性的默认值为true
,这意味着如果您不提及此属性,则服务器可能会认为此页面需要 HTTP 会话。
此属性的默认值:true
会话属性语法:
<%@ page session="value"%>
这里的值是是true
或者false
会话示例:
<%@ page session="true"%>
上面的代码将允许页面具有 session 隐式对象。
<%@ page session="false"%>
如果在 JSP 页面中指定了此代码,则意味着session
对象将不可用于该页面。因此,无法为该页面维护会话。
isErrorPage
此属性用于指定当前 JSP 页面是否可用作另一个 JSP 页面的错误页面。如果isErrorPage
的值为true
,则表示该页面可用于其他页面的异常处理。通常,这些页面具有错误/警告消息或异常处理代码,并且当发生异常时由另一个 JSP 页面调用。
isErrorPage
属性还有另一种用法 – exception
隐式对象只能用于isErrorPage
设置为true
的那些页面。如果值为false
,则页面不能使用 exception 隐式对象。
默认值: false
isErrorPage
属性的语法:
<%@ page isErrorPage="value"%>
这里的值是true
或false
。
isErrorPage
示例:
<%@ page isErrorPage="true"%>
这使得 JSP 页面成为异常处理页面。
errorPage
:
如上所述,当isErrorPage
属性对于特定页面为true
时,则表示在异常情况下该页面可以被另一个页面调用。errorPage
属性用于指定将isErrorPage
属性设置为true
的 JSP 页面的 URL。它处理页面中未处理的异常。
errorPage
属性的语法:
<%@ page errorPage="value"%>
这里的值是一个 JSP 页面名称,它具有异常处理代码(并且isErrorPage
设置为true
)。
errorPage
示例:
<%@ page errorPage="ExceptionHandling.jsp"%>
这意味着如果在放置此代码的 JSP 页面上发生任何异常,则需要调用ExceptionHandling.jsp
(此页面应具有isErrorPage true
)页面。
contentType
此属性用于设置 JSP 页面的内容类型。
默认值:text/html
contentType
属性的语法:
<%@ page contentType="value"%>
这里内容类型的值可以是诸如:text/html
,text/xml
等。
contentType
示例:
下面的代码可用于text/html
页面。
<%@ page contentType="text/html"%>
对于基于text/xml
的页面:
<%@ page contentType="text/xml"%>
isThreadSafe
让我们通过一个例子来理解这一点。假设您已经创建了一个 JSP 页面并将isThreadSafe
提到为true
,这意味着 JSP 页面支持多线程(多个线程可以同时执行 JSP 页面)。另一方面,如果将其设置为false
,则 JSP 引擎将不允许多线程,这意味着只有单个线程将执行页面代码。
isThreadSafe
属性的默认值:true
。
isThreadSafe
属性的语法:
<%@ page isThreadSafe="value"%>
这里的值可以是true
或false
。
isThreadSafe
示例:
<%@ page isThreadSafe="false"%>
只有一个线程负责 JSP 页面执行。
buffer
此属性用于指定缓冲区大小。如果在编码期间将此值指定为none
,则输出将由JSPWriter
直接写入Response
对象。并且,如果指定缓冲区大小,则输出首先写入缓冲区,然后它将可用于response
对象。
buffer
属性的语法:
<%@ page buffer="value"%>
值为大小(单位为 KB)或none
。
缓冲区示例:
此页面没有缓冲区:
<%@ page buffer="none"%>
页面的 5 kb 缓冲区大小,代码如下:
<%@ page buffer="5kb"%>
extends
像 java 一样,这里的属性也用于扩展(继承)类。
extends
属性的语法:
<%@ page extends="value"%>
值为package_name.class_name
。
延伸示例:
下面的代码将从包中继承SampleClass.mypackage
<%@ page extends="mypackage.SampleClass"%>
info
它提供了对 JSP 页面的描述。当我们调用getServletInfo()
方法时,info
中指定的字符串将返回。
info
语法:
<%@ page info="value"%>
这里的值是消息或描述
info
属性示例:
<%@ page info="This code is given by Chaitanya Singh"%>
language
它指定页面中使用的脚本语言(基础语言)。
language
语法:
<%@ page language="value"%>
值是这里的脚本语言。
语言属性示例:
<%@ page language="java"%>
autoFlush
如果为true
,则表示缓冲区应该在满时刷新。当缓冲区溢出时,false
将抛出异常。
默认值:true
autoFlush
的语法:
<%@ page autoFlush="value"%>
值可以是true
或false
。
autoFlush
属性示例:
缓冲区将在满时刷新:
<%@ page autoFlush="true"%>
由于溢出条件,缓冲区满时会抛出异常
<%@ page autoFlush="true"%>
isScriptingEnabled
它已被删除而未被使用。
isELIgnored
此属性指定是否评估表达式。
默认值:true
isELIgnored
的语法:
<%@ page isELIgnored="value"%>
value can be true or false.
isELIgnored
属性示例:
JSP 页面中存在的任何表达式都不会被评估:
<%@ page isELIgnored="false"%>
将评估表达式(true
是默认值,因此无需指定):
<%@ page isELIgnored="true"%>
include
指令
Include
指令用于将一个 JSP 页面的内容复制到另一个 JSP 页面。这就像将一个文件的代码包含在另一个文件中。
include
指令的语法:
<%@include file ="value"%>
这里的值是需要包含的 JSP 文件名。如果文件位于同一目录中,则只需指定文件名,否则需要在值字段中提及完整的 URL(或路径)。
注意:它可以在页面的任何地方使用。
示例:
<%@include file="myJSP.jsp"%>
您可以在 JSP 页面中使用上述代码来复制myJSP.jsp
文件的内容。但是,在这种情况下,两个 JSP 文件必须位于同一目录中。如果myJSP.jsp
位于不同的目录中,那么您需要在上面的代码中指定完整路径,而不仅仅是文件名。
必须通过示例详细阅读:Include 指令。
Taglib
指令
该指令基本上允许用户在 JSP 中使用Custom
标签。我们将在即将到来的 JSP 教程中详细讨论Custom
标签。Taglib
指令可帮助您在 JSP 页面中声明自定义标签。
Taglib
指令语法:
<%@taglib uri ="taglibURI" prefix="tag prefix"%>
其中 URI 是统一资源定位符,用于标识自定义标签的位置,标签前缀是一个字符串,可以标识 URI 标识的位置中的自定义标签。
Targlib
的例子:
<%@ taglib uri="http://www.sample.com/mycustomlib" prefix="demotag" %>
<html>
<body>
<demotag:welcome/>
</body>
</html>
如您所见,URI 具有自定义标签库的位置,前缀标识自定义标签的前缀。
注意:在上面的例子中 – <demotag:welcome>
有一个前缀demotag
。