jsp中的page指令用于向容器提供与当前jsp页面相关的指令。可以在jsp页面的任何位置使用page指令进行编码。 按照惯例,page指令被编码在jsp页面的顶部。
以下是page指令的基本语法 -
<%@ page attribute = "value" %>
可以使用xml编写上述语法,如下所示:
<jsp:directive.page attribute = "value" />
属性
下表列出了与page指令相关联的属性 -
1 | buffer | 指定输出流的缓冲模型。 |
2 | autoflush | 控制servlet输出缓冲区的行为。 |
3 | contenttype | 定义字符编码方案。 |
4 | errorpage | 定义另一个报告java未检查运行时异常的jsp的url。 |
5 | iserrorpage | 指示此jsp页面是否是由另一个jsp页面的errorpage属性指定的url。 |
6 | extends | 指定生成的servlet必须扩展的超类。 |
7 | import | 指定jsp中使用的包或类的列表,就像java的import语句一样。 |
8 | info | 定义可以使用servlet的getservletinfo()方法访问的字符串。 |
9 | isthreadsafe | 定义生成的servlet的线程模型。 |
10 | language | 定义jsp页面中使用的编程语言。 |
11 | session | 指定jsp页面是否参与http会话 |
12 | iselignored | 指定jsp页面中的el表达式是否被忽略。 |
13 | isscriptingenabled | 确定脚本元素是否被允许使用。 |
1. buffer属性
buffer属性指定服务器输出响应对象的缓冲特性。
可以编写指一个none值来指定不使用缓冲,以便servlet输出立即被定向到响应对象,或者可以编写一个以kb为单位的最大缓冲区大小,这将指示servlet在写入响应之前写入缓冲区。
如要指示servlet将输出直接写入响应输出对象,请使用以下命令 -
<%@ page buffer = "none" %>
使用以下命令来指示servlet将输出写入大小不小于64kb字节的缓冲区 -
<%@ page buffer = "64kb" %>
2. autoflush属性
autoflush属性指定缓冲区输出是否在缓冲区填充时自动刷新,或者是否引发异常以指示缓冲区溢出。
true(默认值)值表示自动缓冲区刷新,false值表示引发异常。
当servlet的输出缓冲区已满时,以下指令会导致servlet抛出异常,则使用以下语句 -
<%@ page autoflush = "false" %>
此指令使servlet在完全输出时刷新输出缓冲区,
<%@ page autoflush = "true" %>
通常,buffer和autoflush属性在page指令中进行编码,如下所示:
<%@ page buffer = "16kb" autoflush = "true" %>
3. contenttype属性
contenttype属性设置jsp页面和生成的响应页面的字符编码。 默认内容类型为:text/html,它是html页面的标准内容类型。
如果要从jsp输出为xml,请使用以下page指令 -
<%@ page contenttype = "text/xml" %>
以下语句指示向浏览器生成的页面呈现为html -
<%@ page contenttype = "text/html" %>
以下指令将内容类型设置为:microsoft word文档 -
<%@ page contenttype = "application/msword" %>
还可以指定响应的字符编码。 例如,如果要指定返回浏览器的结果页面使用:utf-8,则可以使用以下page指令 -
<%@ page contenttype = "text/html:charset=utf-8" %>
4. errorpage属性
如果希望在当前页面运行时出现错误时,指定一个错误提示页面,那么errorpage属性告诉jsp引擎显示哪个页面。errorpage属性的值是相对url。
当抛出所有未捕获的异常时,以下指令用于在页面出错时指定显示myerrorpage.jsp的内容 -
<%@ page errorpage = "myerrorpage.jsp" %>
5. iserrorpage属性
iserrorpage属性表示当前的jsp页面可以用作另一个jsp的错误页面。
iserrorpage的值可为true或false。 iserrorpage属性的默认值为false。
例如,handleerror.jsp将iserrorpage选项设置为true,因为它应该处理错误 -
<%@ page iserrorpage = "true" %>
6. extends属性
extends属性指定生成的servlet必须扩展的超类。
例如,以下指令指示jsp转换器生成servlet,以使servlet扩展somepackage.someclass -
<%@ page extends = "somepackage.someclass" %>
7. import属性
import属性与java import语句具有相同的功能,并且类似于java import语句。import选项的值是要导入的程序包的名称。
例如,要导入java.sql.*,请使用以下page指令 -
<%@ page import = "java.sql.*" %>
要导入多个包,可以使用逗号分隔,如下所示:
<%@ page import = "java.sql.*,java.util.*" %>
默认情况下,容器会自动导入java.lang.*,javax.servlet.*,javax.servlet.jsp.*和javax.servlet.http.*。
8. info属性
info属性允许提供jsp的描述。以下是一个代码示例 -
<%@ page info = "this jsp page written by maxsu" %>
9. isthreadsafe属性
isthreadsafe选项将页面标记为线程安全。默认情况下,所有jsp都被认为是线程安全的。 如果将isthreadsafe选项设置为false,则jsp引擎确保一次只有一个线程正在执行jsp。
以下page指令将isthreadsafe选项的值设置为false -
<%@ page isthreadsafe = "false" %>
10. language属性
language属性指示在jsp页面脚本编写中使用的编程语言。
例如,由于通常我们使用java作为脚本语言,因此language选项可设置成如下:
<%@ page language = "java" %>
11. session属性
session属性指示jsp页面是否使用http会话。如果设置值为true,则表示jsp页面可以访问内置session对象,设置值为false表示jsp页面无法访问内置session对象。
以下指令允许jsp页面使用任何内置session对象方法,如:session.getcreationtime()或session.getlastaccesstime() -
<%@ page session = "true" %>
12. iselignored属性
iselignored属性能够禁用jsp 2.0中引入的表达式语言(el)表达式的求值计算。
iselignored属性的默认值为true,这意味着表达式${...}按jsp规范进行评估计算。如果属性设置为false,则不会对表达式进行评估求值,而将其视为静态文本内容。
以下指令设定表达式不会被评估计算 -
<%@ page iselignored = "false" %>
13. isscriptingenabled属性
isscriptingenabled属性确定脚本元素是否被允许使用。
isscriptingenabled属性默认值为true,它表示启用脚本,表达式和声明。 如果属性的值设置为false,则如果jsp使用任何脚本,表达式(非el)或声明,则会引发转换时错误。
如果要限制脚本,表达式(非el)或声明的使用,可将isscriptingenabled属性的值可以设置为false -
<%@ page isscriptingenabled = "false" %>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!