`

JSP中include指令和include动作的区别

阅读更多
include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改。由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译。因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素<jsp:include>.下面将详细区分他们之间的不同


1.include指令
    include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。

语法:<%@ include file="sample.jsp" %>

2.include动作
    jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的 结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面, 将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。

语法: <jsp:include page="sample.jsp" flush="true"> <jsp:param name="name" value="value"/> </jsp:include>

   其中参数设置可以没有,如果没有参数设置,则必须采用<jsp:include page="sample.jsp" flush="true"/>形式

3. 使用include动作还是include指令?

  使用include指令,如果被包含的文件发生改变,那么,用到它的所有Jsp页面都需要更新。

  仅当include动作不能满足要求时,我们才应该使用include指令。

  有 些开发人员认为include指令生成的代码执行起来比使用include动作的代码更快。尽管原则上由可能的确如此,但性能上的差异很小,以致难以测 量,同时,include动作在维护上的优势十分巨大,当两种方法都可以使用时,include动作几乎肯定是首选的方法。

  对于文件包含,应该尽可能地使用include动作。仅在所包含的文件中定义了主页面要用到的字段或方法,或所包含的文件设置了主页面的响应报头时,才应该使用include指令。

既然include指令产生难以维护的代码,为什么人们还要使用它呢?
  因为include指令更为强大。include指令允许所包含的文件中含有影响主页面的Jsp代码,比如响应报头的设置和字段、方法的定义。


例子://subpage.jsp
<%! int num=0; %>
//mainpage.jsp
<html>
<body>
  <%@ include file="subpage.jsp" %>
  <%= num %>
</body>
</html>

当然使用include动作时这是不可能的,因为num变量未定义,主页面不能成功的转换成servlet。


分享到:
评论

相关推荐

    jsp中include指令静态导入和动态导入的区别详解.docx

    JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...

    jsp中两种包含关系(include动作和include指令)的区别

    在JavaServer Pages (JSP) 技术中,存在两种包含关系:`&lt;jsp:include&gt;` 动作和 `jsp:include` 指令。它们都是用来将一个页面的内容插入到另一个页面中的,但它们的工作方式和适用场景有所不同。 **1. `&lt;jsp:include...

    JSP:include和include指令区别

    在JavaServer Pages (JSP) 技术中,`&lt;jsp:include&gt;` 和 `&lt;%@ include %&gt;` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...

    JSP中include指令和include行为的区别

    通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。具体在哪些时候用&lt; %@ include file=” ”%&gt;,哪些时候用&lt; jsp:include page=” ” flush=...

    JSP指令和动作熟悉

    本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:fallback&gt;`, `&lt;jsp:plugin&gt;`。 首先,`page`指令是JSP中最高级别的指令,它用于定义整个JSP页面的属性。`...

    2.4 include指令 JSP+AJAX

    2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX

    JSP中include指令静态导入和动态导入的区别.pdf

    在JSP中,`include`指令用于将一个或多个页面的内容合并到主页面中,以实现页面的模块化。这有助于提高代码复用性并简化维护。`include`指令有两种形式:静态导入和动态导入,它们在处理和执行时有所不同。 1. **...

    JSP基础语法-include指令

    ### JSP基础语法-include指令详解 在Java Server Pages(JSP)技术中,`include`指令是一项重要的功能,它允许开发者将一个JSP页面的内容嵌入到另一个JSP页面中,从而实现代码的重用和模块化。通过`include`指令,...

    jsp:include与include实探

    在Java Web开发中,`jsp:include`和`&lt;jsp:include&gt;`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...

    JSP的include指令的使用方法

    使用include指令可以将常用的代码段或组件包含到多个JSP页面中,从而实现代码的重用,提高开发效率和维护性。 include指令的基本语法为: ```jsp &lt;%@ include file="URL" %&gt; ``` 在这里,`file`属性指定了要被...

    jsp中include指令静态导入和动态导入的区别详解

    JSP中的include指令有两种方式:静态导入和动态导入。了解它们之间的区别,对于开发高效且易于维护的Web应用至关重要。 首先,我们要了解什么是静态导入。在JSP中,静态导入是通过指令%@include file=...

    jsp的include的两种用法

    相比之下,`&lt;jsp:include page=” ” flush=”true”/&gt;` 是 JSP 的动作元素,它可以在运行时将指定的 JSP 文件包含到当前 JSP 文件中。这个过程发生在执行阶段,而不是翻译阶段。这意味着 `&lt;jsp:include page=” ” ...

    实验2 JSP指令标记与JSP动作标记(3.20)

    - 在`one.jsp`、`two.jsp`和`three.jsp`页面中使用`jsp:include`动作标记动态加载导航条文件`head.txt`。 - 例如: `&lt;jsp:include page="head.txt" flush="true" /&gt;` **forward动作标记** - **定义**: `forward`...

    JSP基本语法指令和动作元素_couldzfw_JSP基本语法、指令和动作元素_

    在这个主题中,我们将深入探讨JSP的基本语法、指令和动作元素。 ### **一、JSP基本语法** 1. **脚本元素**: - **&lt;% %&gt;:** 这是Java脚本let区,用于编写Java表达式,它们会被Java编译器转换为等效的Java语句。 -...

    实验2 JSP动作标记.pdf )

    这与在HTML中使用iframe标签或者在JSP页面中使用静态的include指令不同,后者是在页面被翻译为Servlet之前,将内容静态地包含进来。使用include动作标记可以传递参数,通过param子标记可以向被包含的页面传递参数值...

    实验2_Jsp语法 -页面基本结构、指令标记和动作标记

    实验旨在使参与者能够熟练掌握如何在JSP页面中嵌入成员变量、Java程序片段及表达式,同时深入了解`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`等指令标记与`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`等动作标记的应用场景与技巧。...

    JSP常见的三个编译指令page、include、taglib

    jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指令元素(page指令/include指令/taglib指令)复习整理基于jsp:included的使用与jsp:param乱码...

    JSP指令与动作熟悉

    实验目的:掌握3种脚本、page和include指令、&lt;jsp:include&gt;和&lt;jsp:forward&gt;动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...

Global site tag (gtag.js) - Google Analytics