📅  最后修改于: 2021-01-05 01:03:37             🧑  作者: Mango
jsp伪指令是告诉Web容器如何将JSP页面转换为相应servlet的消息。
指令分为三种:
<%@ directive attribute="value" %>
page指令定义了适用于整个JSP页面的属性。
<%@ page attribute="value" %>
import属性用于导入类,接口或包的所有成员。类似于java类或接口中的import关键字。
<%@ page import="java.util.Date" %>
Today is: <%= new Date() %>
contentType属性定义HTTP响应的MIME(多用途Internet邮件扩展)类型。默认值为“ text / html; charset = ISO-8859-1”。
<%@ page contentType=application/msword %>
Today is: <%= new java.util.Date() %>
extend属性定义了将由生成的servlet继承的父类。它很少使用。
此属性仅设置JSP页面的信息,该信息稍后将使用Servlet接口的getServletInfo()方法进行检索。
<%@ page info="composed by Sonoo Jaiswal" %>
Today is: <%= new java.util.Date() %>
Web容器将在生成的servlet中创建方法getServletInfo(),例如:
public String getServletInfo() {
return "composed by Sonoo Jaiswal";
}
buffer属性设置缓冲区大小(以千字节为单位)以处理JSP页面生成的输出。缓冲区的默认大小为8Kb。
<%@ page buffer="16kb" %>
Today is: <%= new java.util.Date() %>
language属性指定在JSP页面中使用的脚本语言。默认值为“ java”。
我们可以通过isELIgnored属性忽略jsp中的表达语言(EL)。默认情况下,其值为false,即默认情况下启用了表达式语言。稍后我们将介绍表达式语言。
<%@ page isELIgnored="true" %>//Now EL will be ignored
Servlet和JSP都是多线程的,如果要控制JSP页面的这种行为,可以使用page指令的isThreadSafe属性。isThreadSafe值的值为true。如果为false,则Web容器将序列化多个请求,也就是说,它将等到JSP完成对请求的响应之前,再将另一个请求传递给它。如果使isThreadSafe属性的值如下所示:
<%@页面isThreadSafe =“ false”%>
在这种情况下,Web容器将生成servlet,如下所示:
public class SimplePage_jsp extends HttpJspBase
implements SingleThreadModel{
.......
}
errorPage属性用于定义错误页面,如果当前页面中发生异常,它将被重定向到错误页面。
//index.jsp
<%@ page errorPage="myerrorpage.jsp" %>
<%= 100/0 %>
isErrorPage属性用于声明当前页面是错误页面。
注意:异常对象只能在错误页面中使用。
//myerrorpage.jsp
<%@ page isErrorPage="true" %>
Sorry an exception occured!
The exception is: <%= exception %>