include 指令与动作

include 指令与动作

include 指令使您可以在 JSP 转换为 Servlet 时将一个文件包含进来。

语法如下所示,两种用法:

<%@ include file=" " %>
<jsp:include page=" " flush="true" />Code language: HTML, XML (xml)

执行时间上的区别

  • <%@ include file="relativeURI" %> 是在翻译阶段执行。
  • <jsp:include page="relativeURI" flush="true" /> 在请求处理阶段执行。

<%@ include file="..." %> 是 JSP 的 include 指令元素,读入指定页面的内容,并把这些内容和本来的页面融合到一起。这个过程是在翻译阶段(也就是 JSP 被转化成 Servlet 的阶段)进行的,引入静态文本(html、jsp),在 JSP 页面被转化成 Servlet 之前和它融合到一起。

<jsp:include page="..." flush="true" /> 引入执行页面或 Servlet 所生成的应答文本。

静态与动态包含

  • <%@ include file="..." %> 为静态的。
  • <jsp:include page="..." flush="true" /> 为动态的。

动态 include 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态 include 用 include 伪码实现,不会检查所含文件的变化,适用于包含静态页面。

通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用 include。

URL 通常相对于指向它的 JSP 页面,但是,普遍使用相对 URL。您可以使用一个斜杠 / 作为 URL 的开始来告知系统 URL 相对于 Web server 的主路径。被包含的文件将以规则的 JSP 形式来解析,因此,您可以在其中使用静态 HTML、scripting elements、Directives 和 actions。

示例代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="source.jsp"  %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <%@ include file="head.html" %>
 <jsp:include page="source.jsp" flush="true" /> 
</body>
</html>Code language: HTML, XML (xml)

解析后的 Servlet 代码

最后生成的 Java 文件是下面这个样子的:

out.write("<body>\r\n");
      out.write(" ");
      out.write("22222222222222");
      out.write('\r');
      out.write('\n');
      out.write(' ');
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "source.jsp", out, true);
      out.write(" \r\n");
      out.write("</body>\r\n");Code language: PHP (php)
Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注