3.4.2 include指令

3.4.2 include指令

include指令的作用

使用include指令可以把其他文件中的内容插入到当前的JSP页面之中。一个页面中可以有多个include指令。

使用场景

如果在多个不同页面中包含了一些相同的内容,或者在同一个页面不同位置中包含了一些相同的内容.则应该把这些相同的内容提取出来,单独保存在一个文件中,然后通过include指令来导入这个文件.因为如果后面需要修改这些相同的内容,只需要打开保存这些相同的内容所在的文件进行修改即可,不需要打开所有的文件进行修改。

include指令语法格式

include指令的语法如下:

1
<%@ include file="url"%>

其中,@include间的空格不是必须的,URL为被包含文件的相对路径,如果URL以一个斜杠(/)开始,则该URL为文件在服务器上的绝对路径,否则为当前JSP页面的相对路径。

JSP转换器如何处理include指令

JSP转换器处理include指令时,JSP转换器会找到include指令所指向的文件,并把文件中的内容插入到这条指令所在的位置.

实例

copyright.jspf:

1
2
3
4
5
<%@ page contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<hr />
&copy;2018 一个麻瓜的网站
<hr />

main.jsp中使用include指令导入copyright.jsp页面中的内容:

1
2
3
4
5
6
7
8
9
10
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><title>测试include指令</title></head>
<body>
下面是inclue指令所指向的文件中的内容:
<%@ include file="copyright.jspf"%>
</body>
</html>

显示效果:
这里有一张图片

等效写法

main.jsp页面中应用include指令和如下页面的效果是一样的:

1
2
3
4
5
6
7
8
9
10
11
12
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><title>测试include指令</title></head>
<body>
下面是inclue指令所指向的文件中的内容:
<hr />
&copy;2018 一个麻瓜的网站
<hr />
</body>
</html>

如上示例中,为保证include指令能正常工作,copyright.jspf文件必须同main.jsp位于相同的目录。按照惯例,以JSPF为扩展名的文件代表JSP fragement。虽然JSP fragement现在被称为JSP segment,但为保证一致性,JSPF后缀名依然被保留。
注意,include指令也可以包含静态HTML文件。