JSP指令用于提供整个JSP页面的相关信息以及用于JSP页面与容器之间的通信。
Page指令 有三种:page指令、include指令、taglib指令
1、page指令:用于设定整个JSP页面的属性和相关功能,page指令共有11个属性:
1.1contentType属性和pageEncoding属性:
contentType属性指定JSP页面的MIME和编码格式
<%@page contentType="text/html;charset=UTF-8"%>
pageEncoding属性用来指定JSP文件的编码格式(JSP文件保存时选择的编码格式)
<%@page contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
1.2import:在JSP中引入Java的包和类,多个包之间以逗号隔开
<%@page import="mypackage.test.*,java.util.Date"%>
1.3session:指定当前页面是否能获得当前用户的session对象,缺省是true,如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误。
<%@page session="true"%>
1.4errorPage:如果当前页面发生异常,网页会重定向到errorPage所指定的页面进行处理
<%@page errorPage="error.jsp" isErrorPage="false"%> 当前页面发生异常,并且没有对异常进行捕获的时候,跳转到error.jsp页面,不指定errorPage的话,画面上直接显示异常的相关信息,这样对使用的用户不是很友好
1.5isErrorPage:允许指定的JSP页面为错误处理页面
1.6 language属性,指定页面中使用的脚本语言种类,目前只支持java
<%@page language="java"%>
1.7extends属性,用于指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名
<%@page extends="mypackage.test.MyJspBase"%>
1.8 buffer属性和autoFlush属性
buffer属性用来设置输出流缓冲区,缓冲区的作用就是为了提高IO性能,也就是说减少write的次数。
autoFlush属性用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区,true的话,自动把缓冲区的内容输出到底层输出流,false的话,缓冲区满的话,会抛出IO异常。
1.9 isThreadSafe属性,缺省值为true,指定该JSP文件是否支持多线程访问
<%@page isThreadSafe="true"%> 此时,多个线程共用同一个servlet实例
<%@page isThreadSafe="false"%> 此时,每个线程都有一个自己的servlet实例,比较消耗内存资源,所以不建议使用
1.10 info属性,用来设置该jsp文件的介绍信息
<%@page info="This is a jsp page."%>
1.11 isELIgnored属性
用来标示是否支持EL表达式
<%@page isELIgnored="true"%> 不支持EL表达式,EL表达式会被当做普通的html文本
<%@page isELIgnored="false"%> 支持EL表达式
2 include指令 表示在JSP编译时插入一个包含文件或者代码的文件,是一种静态包含
2.1include指令所包含的文件名不能是一个变量url,只能是静态的文件名。
2.2在被包含页面中,一般不包含标记,两个页面之间不能存在相同的局部变量
3 taglib指令
声明JSP文件使用了标签库(JSP标准标签库,第三方标签库,自定义标签库)
<%@taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core"%> 声明使用JSTL的核心标签库taglib指令让用户能够自定义标签