JSP指令
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这个隐式变量。
buffer
和 autoFlush
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" %>