上篇我们已经对jsp的基础语法有了一定了解,本篇将详细为大家讲解jsp的指令元素,希望大家有问题可以留言或者私信博主,博主会尽量为大家答疑。
1.什么是指令元素?
指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中。
directive (编译指令)相当于在编译期间的命令。
编译期间:程序还没有开始运行。
格式:<%@directive 属性=“属性值”%>
常见的directive:
page / include / taglib
2.page指令
Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。
语法格式:
<%@ page attribute="value" %>
属性 下表列出与Page指令相关的属性:
属性 | 描述 |
---|---|
buffer | 指定out对象使用缓冲区的大小 |
autoFlush | 控制out对象的 缓存区 |
contentType | 指定当前JSP页面的MIME类型和字符编码 |
errorPage | 指定当JSP页面发生异常时需要转向的错误处理页面 |
isErrorPage | 指定当前页面是否可以作为另一个JSP页面的错误处理页面 |
extends | 指定servlet从哪一个类继承 |
import | 导入要使用的Java类 |
info | 定义JSP页面的描述信息 |
isThreadSafe | 指定对JSP页面的访问是否为线程安全 |
language | 定义JSP页面所用的脚本语言,默认是Java |
session | 指定JSP页面是否使用session |
isELIgnored | 指定是否执行EL表达式 |
isScriptingEnabled | 确定脚本元素能否被使用 |
其中需要记住 import,contentType,errorPage,isErrorPage
例:
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*,java.io.*" %>
<html>
<head>
<title>测试errorPage</title>
</head>
<body>
<%
String str = "123abc";
int i = Integer.parseInt(str);
System.out.println("str= " + str + ",i= " + i);
%>
</body>
</html>
上面是未使用errorPage,看运行结果:
可以看到出现错误,这时候就该errorPage和isErrorPage俩兄弟属性出场了
errorPage文件代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*,java.io.*" %>
<html>
<head>
<title>测试errorPage</title>
</head>
<body>
<%@page errorPage="isErrorPage.jsp" %>
<!--如果本页面出错则跳转到ErrPage.jsp页面-->
<%
String str = "123abc";
int i = Integer.parseInt(str);
System.out.println("str= " + str + ",i= " + i);
%>
</body>
</html>
isErrorPage文件代码:
<%@page contentType="text/html;charset=gb2312" %>
<%@page isErrorPage="true" %>
<html>
<body>
错误信息:
<%= exception.getMessage()%>
</body>
</html>
exception是errorPage的出错对象,getMessage()输出出错信息!!
3.include指令
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
语法格式:
<%@ include file="文件相对 url 地址" %>
例:
testInclude.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<HTML>
<BODY>
<%@include file="TestUser.jsp" %>
<%="欢迎"%>
</BODY>
</HTML>
testUser.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
各位小友,
</body>
</html>
运行结果: