jsp指令是用来规定整个jsp页面的相关属性,例如编码方式,脚本语言等。
其语法格式<%@ 指令 指令属性1 指令属性2 ···· % >
例如 我们每次新建jsp页面时 编译器给我们的补全的信息
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
这就是三大指令的其中一个 page指令
好 接下来我们看看三大指令以及其附属属性吧。
Page指令
Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。page指令是定义jsp文件中的全局属性,描述了与页面相关的一些信息,作用域为它所在的jsp页面和其包含的文件,一般处于jsp页面的顶端,但是不论写在哪,作用域都是全局,但是还是要养成良好的编程习惯,一个jsp页面page指令可以有多个,但是除了import属性其他的只能用一次
属性 | 描述 |
---|---|
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,默认为true,特别说明时要改成false |
isELIgnored | 指定是否执行EL表达式 |
isScriptingEnabled | 确定脚本元素能否被使用 |
Include指令
include指令用于在当前jsp页面中加载需要插入的文件代码,即为页面插入一个静态文件,如jsp页面、html页面、文本文件或是java程序,这些加载的代码和原有的jsp代码合并成新的jsp页面其语法格式
<%@ include file="文件相对 url 地址" %>
例如
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'include.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>以下是被引进的页面</h1>
<%@ include file="hello.jsp" %>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
</head>
<body>
<h3>对!没错!我是被引进的</h3>
</body>
</html>
运行结果如截图
在引用别的文件,尤其是jsp页面时 会遇到这种错误。
Multiple annotations found at this line:
- Duplicate local variable path
- Duplicate local variable
basePath
前面我们也提到了,include是将两个文件合成一个,那么,一个文件是不允许有相同变量的。所以 每个页面path和basepath的变量名编译器给默认的一样,所以可以通过更改变量名或者直接删除方式来消除此错误
Taglib指令
taglib指令是用来指定页面中实用的标签库以及自定义的标签的前缀语法格式
<%@ taglib uri="uri" prefix="prefixOfTag" %>
其中
1、uri属性 用于指定标记库存放的位置,并告诉jsp引擎编译jsp程序时如何处理指定标签库中的标签
2、prefix属性 用于指定标记库所有动作元素名中实用的前缀