JSP include指令

include指令用于在编译阶段包括一个文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用include指令进行编码。

本指令的一般用法形式如下:

<%@ include file = "relative url" >

include指令中的文件名实际上是一个相对URL。如果只指定一个没有关联路径的文件名,那么JSP编译器会假定该文件与JSP在同一个目录中。
可以使用XML编写上述代码效果相同,如下所示:

<jsp:directive.include file = "relative url" />

include指令示例

include指令的一个很好的例子是要一个页面中包括多个公共页面的内容,如:比如一个主页中包函公共页眉和页脚。

为了更好的演示,打开Eclipse,创建一个动态Web项目:IncludeDirective,并创建以下三个JSP文件:

  • main.jsp - 网站主页
  • header.jsp - 顶部菜单和公共内容
  • footer.jsp - 显示网站版权,备案号等公共信息

完整的项目结构如下图所示 -

以下是main.jsp的内容 -

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>主页(Main.jsp)</title>
</head>
<body>
    <%@ include file="header.jsp"%>

    <center>
        <p>这是Main.jsp页面的内容~</p>
        <p>include指令用于在编译阶段包括一个文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用 include指令进行编码。</p>
    </center>
    <%@ include file="footer.jsp"%>
</body>
</html>

以下是header.jsp的内容 -

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<center>
    <h2>include指令示例</h2>
    <p>
        <a href="main.jsp">首页</a> | <a href="header.jsp">页头</a> | <a href="footer.jsp">页尾</a>
    </p>
</center>
<br />

以下是footer.jsp的内容 -

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!int pageCount = 0;

    void addCount() {
        pageCount++;
    }%>

<%
    addCount();
%>
<center>
    <p>Copyright © 2018 | 备案号:琼ICP备13001417号-3 |  联系我们:769728683@qq.com | 访问次数:<%=pageCount%></p>
</center>

现在将上面三个JSP文件保存在根目录下,并尝试访问http://localhost:8080/IncludeDirective/main.jsp。应该会看到以下输出 -

刷新main.jsp,会发现页面匹配计数器不断增加。

可以根据您的应用功能来设计网页; 建议将网站的动态部分保存在单独的文件中,然后将其包含在主文件中。当需要更改网页的一部分时,只需要修改少数几个地方就可以轻松实现。