JSP教程-JSP指令
JSP指令是告诉Web容器如何将JSP页面翻译成相应Servlet的指令。
有三种类型的指令:
- 页面指令
- 包含指令
- 标签库指令
JSP指令的语法
<%@ directive attribute="value" %>
JSP页面指令
页面指令定义适用于整个JSP页面的属性。
JSP页面指令的语法
<%@ page attribute="value" %>
JSP页面指令的属性
- import
- contentType
- extends
- info
- buffer
- language
- isELIgnored
- isThreadSafe
- autoFlush
- session
- pageEncoding
- errorPage
- isErrorPage
1)import
import属性用于导入类、接口或包的所有成员。它类似于Java类或接口中的import关键字。
import属性的例子
<html>
<body>
<%@ page import="java.util.Date" %>
Today is: <%= new Date() %>
</body>
</html>
2)contentType
contentType属性定义HTTP响应的MIME(多用途互联网邮件扩展)类型。默认值是"text/html;charset=ISO-8859-1"。
contentType属性的例子
<html>
<body>
<%@ page contentType=application/msword %>
Today is: <%= new java.util.Date() %>
</body>
</html>
3)extends
extends属性定义生成的servlet将继承的父类。这个属性很少使用。
4)info
这个属性简单地设置JSP页面的信息,稍后可以通过Servlet接口的getServletInfo()方法检索。
info属性的例子
<html>
<body>
<%@ page info="composed by Sonoo Jaiswal" %>
Today is: <%= new java.util.Date() %>
</body>
</html>
Web容器将在结果servlet中创建一个getServletInfo()方法。例如:
public String getServletInfo() {
return "composed by Sonoo Jaiswal";
}
5)buffer
buffer属性设置以千字节为单位的缓冲区大小,以处理JSP页面生成的输出。缓冲区的默认大小是8Kb。
buffer属性的例子
<html>
<body>
<%@ page buffer="16kb" %>
Today is: <%= new java.util.Date() %>
</body>
</html>
6)language
language属性指定JSP页面中使用的脚本语言。默认值是"java"。
7)isELIgnored
通过isELIgnored属性,我们可以在jsp中忽略表达式语言(EL)。默认情况下,其值为false,即默认启用表达式语言。
<%@ page isELIgnored="true" %>//Now EL will be ignored
8)isThreadSafe
Servlet和JSP都是多线程的。如果您想控制JSP页面的这种行为,可以使用页面指令的isThreadSafe属性。isThreadSafe的值为true。如果您将其设置为false,Web容器将序列化多个请求,即它将等待JSP响应一个请求之后再传递另一个请求给它。如果您将isThreadSafe属性的值设置如下:
<%@ page isThreadSafe="false" %>
在这种情况下,Web容器将生成如下的servlet:
public class SimplePage_jsp extends HttpJspBase
implements SingleThreadModel{
.......
}
9)errorPage
如果当前页面发生异常,errorPage属性用于定义错误页面,将重定向到错误页面。
errorPage属性的例子
//index.jsp
<html>
<body>
<%@ page errorPage="myerrorpage.jsp" %>
<%= 100/0 %>
</body>
</html>
10)isErrorPage
isErrorPage属性用于声明当前页面是错误页面。
注意:异常对象只能在错误页面中使用。
isErrorPage属性的例子
//myerrorpage.jsp
<html>
<body>
<%@ page isErrorPage="true" %>
Sorry an exception occured!<br/>
The exception is: <%= exception %>
</body>
</html>