指令表示语法格式如下:
<%@ 指令名 属性1="属性值1" 属性2="属性值2".....%>
注意:“<%@”与“%>”是完整的标记,中间不能加空格,但是标签中定义的属性与指令名之间是有空格的。
JSP中指令标识如下:
指令 |
---|
page指令 |
include指令 |
taglib指令 |
1.page指令
page是JSP页面最常见的指令,用于定义整个JSP页面的相关属性,这些属性在JSP中被服务器解析成Servlet时会转换为相应的Java代码。page指令的语法格式如下:
<%@ page att1="value1" att2="value2"......%>
下面对其一些常用属性进行介绍。
常用属性 | language | extends | import | pageEncoding | contentType | session | buffer | autoFlush |
1.language属性
用于设置JSP页面使用的语言,默认值为Java。代码如下:
<%@ page language="java" %>
2.extends属性
用于设置JSP页面继承的Java类,所有的JSP页面在执行之前都会被服务器解析成Servlet,Servlet是由Java类定义的,所以JSP和Servlet都可继承继承指定的父类。但该属性并不常用,有可能形象服务器的性能优化。
3.import属性
用于设置JSP导入的类包。有些Java代码调用时需要导入相应的包类。代码如下:
<%@ page import="java.uuuu.xxxx"%>
4.pageEncoding属性
用于定义JSP页面的编码格式,JSP中所有代码都使用该属性指定的字符集。通常设置为GBK,因为它可以显示简体和繁体中文。代码如下:
<%@ page pageEncoding="GBK"%>
5. contentType属性
用于设置JSP页面的MIME类型和字符编码,浏览器会据此显示网页内容。代码如下:
<%@ page contentType="text";charset=UTF-8"%>
注意:JSP页面的默认编码格式为ISO-8859-1,该编码格式是不支持中文的,需要将页面的编码格式设置为UTF-8或GBK格式。
6.session属性
指定JSP页面是否使用http的session会话对象。其属性指为boolean类型,可选值为true和false。选true则可以使用session对象,反之则不可。代码如下:
<%@ session="true"%>
7.buffer属性
用于设置JSP的out内置对象的缓冲区的大小,默认大小为8KB,单位为1KB,建议使用8的倍数,16,32,40。代码如下。
<%@ page buffer="32KB"%>
8. autoFlush属性
用于设置缓冲区满的时候,是否自动刷新缓冲。默认值为true,若设置为false,当缓冲满的话则会报错。代码如下。
<%@ page autoFlush="false"%>
2.include指令
文件包含指令,可使用该指令在一个JSP页面包含另一个JSP页面。该指令是静态包含,就是说被包含的所有内容会原样包含到该JSP页面内,即使被包含文件含有JSP代码,在包含时也不会被编译执行。使用include指令,最终将生成一个文件,故在包含与被包含的文件中不能出现相同名称的变量。过程如图所示。
代码如下。
<%@ include file="path"%>
该路径相对、绝对路径都可以,但不可是通过<%=%>表达式所代表的文件。
例:编写一个bottom.jsp的文件,包含top.jsp文件内容。
bottom.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="top.jsp" %><br>
</body>
</html>
top.jsp文件代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
头部文件
</body>
</html>
运行结果如下:
建议:为了使整个页面的层次结构不发生冲突,建议在被包含页面中将<html>、<body>等标记删除。因为其已有这些标记。
3.taglib指令
声明该页面中所使用的标签库,同时引用标签库,指定标签的前缀。在页面引用标签库后,就可通过前缀来引用标签库中的标签。代码如下。
<%@ taglib prefix="tagpreFix" uri="tagUri"%>
参数说明:
preFix:用于指定标签的前缀。但该前缀不能命名为jsp、jspx、java、javax、sun、servlet。
uri:用于指定标签库文件的存放位置。代码如下。
<%@ taglib prefix="c" uri="http://java.xxx/xxx/xxx"%>
蟹蟹大家的阅读~