请同学们先浏览PPT,这是一个任务点哈!完成后有惊喜哟!


该元素的作用是在将JSP源文件解析成Java文件时指示JSP引擎做出相应的操作,从而达到预期的目的。JSP指令在整个页面范围内有效,且不在客户端产生任何输出。基本格式为:<%@指令 属性1="" ... 属性2="" %>常见的指令有: page、include、taglib,要注意“%”和“@”符号之间不能有空格。
1.page指令
page指令用来设定JSP页面的全局属性和相关功能,作用于整个JSP文件,可以放到JSP页面的任何位置,但为了便于阅读和格式规范,通常放到JSP页面开始的位置。
语法格式:<%@ page 属性="值" %>
如:<%@ page import=" java.text.*,java.util.*" %>
1、language属性 | 设置JSP页面使用的语言,目前只支持Java,默认值为Java<%@ page language="java" %> |
2、extends属性 | 设置JSP页面继承的java类,JSP页面在执行之前都会被服务器解析成Servlet,而Servlet是由Java类定义的,所以JSP和Servlet都可以继承指定的父类,该属性不常用,可能影响服务器的性能优化。 |
3、import属性 | 设置JSP导入的类包,嵌入的java代码片段需要导入相应的类包。<%@ page import="java.util.*" %> |
4、pageEncoding属性 | 指定页面编码格式,如果设置为ISO-8859-1,则页面不支持中文,通常设置为GBK或者UTF-8<%@ page pageEncoding="UTF-8"%> |
5、contentType属性 | 设置页面的MIME类型和编码<%@ page contentType="text/html; charset=UTF-8"%> |
6、session属性 | 指定页面是否使用HTTP的session会话对象,默认值为true<%@ page session="true"%> |
7、buffer属性 | 设置页面out输出对象的缓冲区大小,默认为8KB,单位只能使用KB,建议使用8的倍数作为属性值<%@ page buffer="128kb"%> |
8、autoFlush属性 | 设置页面缓存满时,是否自动刷新缓存,默认为true,如果设置成false,则缓存满时会抛出异常<%@ page autoFlush="false"%> |
9、isErrorPage属性 | 可以将当前页面设置成错误处理页面来处理另一个JSP页面的错误,也就是作为异常处理页面<%@ page isErrorPage="true"%> |
10、errorPage属性 | 设置当前页面的异常处理页面,对应的异常处理页面isErrorPage必须设置为true,如果设置该属性,那么在web.xml文件中定义的任何错误处理页面都将被忽略,优先使用该属性定义的异常处理页面。<%@ page errorPage="relativeURL"%> |
11、isThreadSafe属性: | 设置JSP页面是否可以多线程访问。默认值为true,表示当前JSP页面被转换为Servlet后,会以多线程的方式来处理来自多个用户的请求;如果设为false,则转换后的Servlet会实现SingleThreadMode接口,并且将以单线程的方式来处理用户请求。 |
12、isELIgnored属性: | 其值可设置为true或false,表示是否在此JSP网页中执行或忽略表达式语言“${}”。设为true时,JSP容器将忽略表达式语言。 |
13、info属性 | 设置JSP页面的相关信息,如当前页面的作者、编写时间等。此值可设置为任意字符串,由Servlet.getServletInfo()方法来获取所设置的值。 |
【案例2-5】网页获取当前的系统时间
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head>
<title>网页获取当前的系统时间</title>
</head>
<body>
<%@ page import="java.util.*"%>
<!-- 先不加上面这句话演示-->
<%
Date d=new Date();
out.println(d.toLocaleString());
%>
</body>
</html>
运行效果如何呢?同学们赶紧试试吧?
2.include指令
include指令用来向当前页面插入一个静态文件,这个静态文件可以是html文件、jsp文件或其他文本文件或者只是一段java代码。
语法格式如下:<%@ include file="URL" %>
【案例2-6】引入页头和版权页面
head.jsp页面:
<%@page contentType="text/html;charset=gb2312" %>
<a href="chinaboy.jsp">华人男歌手</a>
<a href="chinagirl.jsp">华人女歌手</a>
copyright.jsp页面:
<%@page contentType="text/html;charset=gb2312" %>
Copyright @ 2017-2018.蓝敏工作室
index.jsp页面:
<%@page pageEncoding="gb2312"%>
<%@include file="head.jsp"%>
<br>
正文内容
<br>
<%@include file="copyright.jsp"%>
3.taglib指令
开发人员可以使用标记库来定义自己的JSP标记,页面设计人员可以直接使用标记库中的自定义标记,而同时隐藏底层的实现细节。taglib指令用于引入JSP页面中需要使用的标记库的定义,开发者可通过前缀来引用标签库中的标签。
语法:<%@ taglib prefix="前缀名" uri="标记库的uri地址" %>
举例:
<%@ taglib uri="http://myjsp.com.cn/exampleTags" prefix="myTags" %>
<myTags:doSomething></myTags:doSomething>

