一、什么是JSP指令
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
在JSP 2.0规范中共定义了三个指令:
- page指令
- Include指令
- taglib指令
JSP指令的基本语法格式:<%@ 指令 属性名="值" %>,例如:
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
二、page属性
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
指定当前页面的session隐藏变量是否可用,也可以指当前页面是否要生成session对象
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
指定当前页面出现错误时响应的页面,,其中/表示当前web应用的根目录
[ errorPage="relative_url" ]
指定当前页面是否为错误处理页面,可以说明当前页面是否可以使用exception隐藏变量,需要注意的是:
若指定isErrorPage=“true”,并使用exception的方法后,一般不建议能够直接访问该页面
对于tomcat服务器来说,web—INF下的目录浏览器是不能够直接访问的。
[ isErrorPage="true | false" ]
指定当前页面的显示格式,以及编码方式
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
指定当前页面的字符编码,通常情况下为UTF—8
[ pageEncoding="characterSet | ISO-8859-1" ]
指定当前页面是否能够使用ELM表达式,通常取值为true
[ isELIgnored="true | false" ]
%>
例子:
配置errorPage与ISErrorPage
- 设置出错页面,当出现错误时,Servlet引擎找到当前应用下的/error.jsp
<%@page import="web_01.Man"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="/error.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
This is my JSP page. <br>
<%
int i =3/0;
%>
</body>
</html>
- 编写error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>错误信息提示</title>
</head>
<body>
SORRY,当前页面出现错误,请尝试刷新页面,若仍未成功请联系管理员进行处理。
错误信息为:<%= exception.getMessage() %>
</body>
</html>
通过配置,可以使得错误显示地更加友好
三、include指令
include指令用于通知JSP引擎在翻译当前页面时将其他文件的内容合并到当前JSP页面转换成的Servlet源文件中,这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面的与静态引入的页面紧紧地结合为一个servlet。
语法<% include file="relativeURL">
其中的file属性,用于指定被引入文件的相对属性。
细节:
被引入的文件必须遵顼JSP语法。
被引入的文件可以使用任意扩展名,但是推荐JSP
在将JSP文件翻译成servlet源文件是,JSP引擎将合并被引入的文件与当前JSP页面中的指令元素。所以,除了import和pageEncoding属性之外,page指令的其他属性不能够再这两个页面中有不同的设置值。