page指令用于为容器提供指示,这些指示将应用于当前JSP页面。从容器的角度看,每个JSP页面都是一个单独的翻译单元。
1.language属性
<% @ page language = "java" %>
这制定了页面上使用的脚本语言应该是Java编程语言。如果没有指定这个属性,默认值为"java"。所以,如果打算采用Java语言的话,就没有必要再指定这个属性。
2.extends属性
<%@ page language="java" extends ="com.wrox.begijsp.Eshop" %>
extends属性允许你指定容器在这个翻译阶段将使用的超类。上述代码由容器翻译之后,得到的Java源代码:
...
public final class my_jsp extends com.wrox.begijsp.Eshop implements org.apache.jasper.runtime.JspSourceDependent{
这个页面的脚本元素就能够访问这个超类的保护成员和公共成员(成员包括方法和字段)。应该尽量少用这种技术,只有在没有其他方法能够实现同样的功能时才应考虑使用这种技术。使用超类的话,不仅会把JSP代码与Java代码绑定,还会让人倾向于使用脚本元素。
3.import属性
<%@ page language="java" import="com.wrox.begjsp.ch07.*,java.util.*"%>
源代码中创建下列源代码语句:
import com.wrox.begjsp.ch07.*;
import java.util.*;
4.session属性
不同于到目前为止所见的其他属性,这个属性为容器提供的请求时行为的指导。前面介绍的属性都是针对翻译时行为的指示。session属性是一个布尔值属性。如果为true,容器就会创建并维护一个HTTP会话:
<% @page session="true" %>
如果页面中有上述指令,其中的JSP代码可以访问session隐式JSP作用于对象。如果属性值为false,容器就不会创建任何会话。如果JSP中session="false",那么页面中对session对象的任何访问都会导致一个错误。
session属性的默认值为true。因此,如果需要会话处理,并没有必要制定这个属性。
5.info属性
info属性可以用于指定有关页面的信息。
<%@page info="Beginning JavaServer Pages "%>
6.isELIgnored属性
isELIgnored属性是一个布尔值属性。如果这个属性设置为true,那么次JSP页面中任何EL表达式都被忽视。这个属性提供一中方法来维护JSP页面的向后兼容性。对于JSP 2.0,这个属性的默认值为false,并且会在请求时计算EL表达式。
7.isErrorPage属性
这是一个布尔值属性。如果这个属性设置为true,则是告诉容器:其他jsp页面要使用这个JSP来处理错误。在请求时,容器会置一个特殊的隐式变量可用,这个变量名为exception。这个作用域变量实际上时附加到JSP请求隐式对象的一个属性。isErrorPage的默认值为false,因为大多数JSP页面都不是错误处理页面。
8.errorPage属性
这个属性与isErrorPage属性结合使用,用以处理JSP中的错误。errorPage属性值是一个JSP的URL,如果出现一个错误,而且在当前页面中没有这个错误,就会执行该属性指定的JSP。errorPage属性没有默认值。如果没有指定,这个页面中没有处理的错误将由容器报告为一个未捕获的异常。
9.contentType属性
contenType属性告诉容器:这个JSP的输出是何种格式。对于contentType来说,最常见的值是text/html或者是text/xml,不过还可以指定任何MIME类型和一个可选的字符编码作为这个属性的值。