包含指令和包含操作标记都用于将文件包含到当前 JSP 页面中。但是,它们包含文件的方式有所不同。在解释它们之间的区别之前,让我们简要介绍一下它们。
JSP 包含指令
index.jsp
<html>
<head>
<title>JSP include Directive example</title>
</head>
<body>
<%@ include file="display.jsp" %>
</body>
</html>
display.jsp
<p>This is the content of my file</p>
输出:
JSP 包含动作标签
index.jsp
<html>
<head>
<title>JSP include Action example</title>
</head>
<body>
<jsp:include page="display.jsp" />
</body>
</html>
display.jsp
<p>This is the content of my file</p>
输出:与我们在 include 指令示例中得到的完全相同。
JSP 包含指令与包含操作标记
我们在上面看到,两者的输出是相同的,但是它们之间几乎没有明显的差异。
1) Include 指令在翻译时包含文件(JSP 生命周期的阶段, JSP 被转换为等效的 servlet),而包含操作在运行时包含文件。
2) 如果包含的文件发生了更改,但包含它的 JSP 没有更改,那么这些更改将仅在我们使用 include 操作标记时反映。如果您使用 include 指令,更改将不会反映,因为 JSP 没有更改,因此不会翻译(在此阶段,使用指令时仅包含文件)以进行请求处理,因此更改不会反映。
3)语法差异:include指令: <%@ include file="file_name" %>
而include动作有这样的 <jsp:include page="file_name" />
4)当使用包含动作标签时,我们也可以通过使用参数动作标签将参数传递给包含页面,但在包含指令的情况下,这是不可能的。
<jsp:include page="file_name" />
<jsp:param name="parameter_name" value="parameter_value" />
</jsp:include>
这些是包含指令和包含操作之间的主要区别。