<jsp:include page>和<%@ include file%>的区别

<%@include...> 与<jsp:include....>指令的区别

include指令:

在翻译阶段(将JSP页面转换成servlet的阶段),include会读入指定的页面中的内容,并将这些内容和原来的页面融合在一起

<%@ include file=”header.html”%>

 引入的页面可以只包含静态内容(例如HTML),也可以是一个普通的JSP页面。主页面和引入的页面融和在一起(引入的页面只是最为普通的文本进行融合,并不对动态内容求值),融合后的完整页面再被整体的转换为一个servlet。

 这意味着主页和被引入的页面共享所有的页面作用域数据。因此,如果主页面中声明了一个变量,而在某个被引入的页面中也声明了一个同名的变量,那么在翻译阶段将会造成一个错误,因为组合后的页面无法进行编译。

 include指令的一个常见用法是引入应用程序的所有页面都需要的公共声明。

 JSP规范建议在使用include指令引入JSP页面时,最好使用不同的文件扩展名,因为它们一般都不是完整而合法的页面,如:可以使用这些替代的文件扩展名:.jspf或 .jsf。

 被引用页面改变后,容器可能不会马上产生反应。

 <jsp:include>

  指令用于在运行时引入另外的资源。

  <jsp:include page=”navigation.jsp”/>

   这个指令是在请求处理阶段而不是在翻译阶段执行的。该行为并不是要引入指定页面的实际内容,它将引入执行该引入页面后所产生的应答,这意味着你可以指定任何能够产生文本应答的web资源。JSP容器将通过一个内部的函数调用来调用指定的资源。因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象,以及所有的请求参数。但是要注意,它不能访问任何页面作用域属性,或是在主页面中声明的脚本变量。

   <c:import>行为和<jsp:include>相同,另外它还可以从外部资源引入数据,比如不同的web应用程序,或者一个FTPfuwq。

    所以应该使用<c:import>来代替<jsp:include>的使用。

    被引用页面改变后,新版本会立即投入使用。

include 和<jsp:include>行为直接的区别   

语法 执行时间 引入内容
<%@ include  File=”relativeURI”%> 翻译阶段 静态文本(HTML、JSP),在JSP页面被转换为servlet之前和他融合在一起
<jsp:include Page=”relativeURI”Flush=”true/false”/> 请求处理阶段 执行页面或servlet所生成的应答文本

总结:<%@ include
file%>是把引入的文件和当前的文件共同合斌成一个servlet文件进行解析。<JSP:include
page>是把当前文件和引入文件生成两个不同的servlet文件,在当前文件中在进行动态的调用引入的servlet文件。

时间: 2024-08-30 06:01:39

<jsp:include page>和<%@ include file%>的区别的相关文章

JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?

一.静态包含指令<%@include file=“fileurl”%> 两个jsp页面的<%@page contentType=“text/html:charset=gbk”%>应该保持一致 不能通过fileurl向被包含的jsp页面传递参数,因为此静态包含是发生在jsp页面转换为servlet的转换期间,此时的参数是服务器端设置的死的参数,完全没有经过客户端,这种参数是没有意义的,如<%@include file=“fileurl?user=admin”%>,而且此时

jsp两种include指令区别

[转]:http://www.cnblogs.com/lazycoding/archive/2011/04/04/two_include.html <%@ include file="relativeURI"%> <jsp:include page="relativeURI" flush="true" /> 首先说明这两种都是什么: <%@ include file="relativeURI"%&

jsp中的@include与jsp:include区别详解

1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include page="xxx.jsp"></jsp:include> 我们也许会使用这两种方式,但是也许很多人不名称这两种方式的区别.下面我们来看看下面的两个例子 2 开门见山引出问题 (1) /include/include.jsp <%@ page language=&

[转]&lt;jsp:include&gt;和&lt;%@include%&gt;的区别

首先,转发自yangbobo1992的 <jsp:include>和<%@include%>的区别 这个是我见过写的最好的之一 <%@include%>和<jsp:include>的区别,发现了一些东西的. 首先说说对这两句话的理解 <%@ include file=""%> <jsp:include page=""/> 是这两个吧? 共同点:两者都是在请求时包含另一个页面进来! 不同点: 前者

JSP中动态INCLUDE与静态INCLUDE的区别

动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数. 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %> 下面非常详细地解析了有关JSP动态INCLUDE和

JSP中的include有哪些?有什么区别?

JSP中的include有哪些?有什么区别? 1.JSP中的include有哪些 (1)<%@include file="" %> (2)<jsp:include page="" flush="true"/> 2.两者区别 (1)前者是指示元素,后者是行为元素 (2)前者合成一个页面,后者合成一个文件后被JSP容器转化成Servlet

&lt;%@page include%&gt;、&lt;%@include%&gt;、&lt;jsp:include&gt;三者之间的本质区别

<%@page include%>.<%@include%>.<jsp:include>三者之间的本质区别 先从它的几个内置对象说起. application和session比较简单,这里主要说明request和page的作用范围. application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止. session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态.生命周期:

&lt;jsp:include&gt;和&lt;%@include file=&quot;&quot;%&gt;的区别(简单了解)

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

5.jsp中动态include与静态include的区别

动态include在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示:静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管 动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" /&g

JSP中动态include和静态include的区别

动态include用jsp:include动作实现,<jsp:include page=include.jsp flush=true/>,它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数. 静态include用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@include file=included.html%>