JSP指令

时间:2018-11-15 12:15:40  来源:igfitidea点击:

JSP规范中有三个JSP指令:page、include和taglib。

这些JSP指令遵循以下形式:

<%@ directive attribute1 = "value 1" 
              attribute2 = "value 2"
              ...
              %>

page 指令

page指令可以定义一个或多个下面这些属性:

import

import="package.class"
import="package.class1,package.class2,...,package.classN"

import选项用于在页面上导入包的类。
例如,导入java.util包中的所有类:

<%@ page import="java.util.*" %>

在page指令中可以多次使用import选项。


contentType

contentType="MIME-Type"
contentType="MIME-Type; charset=Character-Set".

contentType选项用于指定输出页面的MIME类型。默认是text/html。

将MIME设置为text/plain:

<%@ page contentType="text/plain" %>

pageEncoding

pageEncoding选项用于指定页面编码。

在helloworld代码中,我们使用了 <%@page %>标签来指定了内容的类型和页面编码:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

如果没有这句话,当你把hello改成中文后,保存时IDE会提示你:

The index.jsp contains characters which will probably be damaged during conversion to the ISO-8859-1 character set. Do you want to save the file using this character set? (Yes/No)

isThreadSafe

isThreadSafe="true|false"

isThreadSafe选项用于设置页面是否作为线程安全处理。默认值为true,因此所有JSP页面都被认为是线程安全的(即同时启动多个线程执行同一页面不相互影响)。
如果isThreadSafe设置为false, JSP引擎确保一次只执行一个线程。


session

session="true|false"

告诉JSP编译器您是否希望使用session。默认为true,在JSP页面中可以使用session这个隐式变量。


bufferautoFlush

buffer和autoFlush选项用于控制JSP缓冲。

您可以打开或关闭缓冲区,指定缓冲区大小如下:

<%@ page buffer="none" %>
<%@ page buffer="64kb" %>

autoFlush控制缓冲区满时是否自动刷新。默认值为true,即JSP在缓冲区满时自动刷新缓冲区。


Info

Info选项用于定义servlet的描述。然后你可以通过调用下面的方法来访问这个值:

Servlet.getServletInfo()

extends

在某些情况下,您需要创建自己的JSP页面的超类,并在不同的JSP页面中使用这个超类。为此,您需要首先创建一个通常继承自HttpServlet类的超类。然后在JSP页面中,通过extends选项来使用超类。


isELIgnored

iselignore选项用于禁用表达式语言(EL)的计算。


errorPage

errorPage选项用于指定当当前执行的JSP页中发生错误时,显示的错误页面:

<%@ page errorPage="error.jsp" %>

isErrorPage

isErrorPage选项表示当前JSP页面可以用作其他JSP页面的错误页面。当isErrorPage设置为true时,JSP引擎将创建一个隐式异常对象,该对象包含了一个Throwable对象,它将触发对错误页面的调用。通过这个异常对象,你就可以显示错误消息,例如:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page isErrorPage="true" %>
<!DOCTYPE html>
<html>
    <head>
        <title>出现错误</title>
    </head>
    <body>
        <h1>Error</h1>
        在处理请求时出错。
        <p>
            错误信息是: <%= exception.getMessage()%>。</p>
    </body>
</html>

Include 指令

使用include指令,可以在JSP引擎将JSP页面转换成servlet时包含一个文件(JSP或HTML)。

include指令的语法:

<%@ include file="相对URL" %>

在include指令中指定的文件名是一个相对URL。如果您提供了一个没有关联路径的文件名,JSP编译器总是假设该文件与当前JSP页面在相同的目录中。

在web应用程序或网站中,include指令通常用来包含JSP页面的公共部分,如头部、导航栏、页脚等,以使这些部分在每个JSP页面中可重用。


taglib指令

JSP有一组可用的标准标记。JSP还允许您创建类似于HTML或XML标记的新自定义标记。
通过taglib指令就可以在JSP页面中使用自定义标记。

<%@ taglib uri="http://localhost/jsptutorial/taglib/mytaglib"
   prefix="jsptutorial" %>