JSP中动态INCLUDE与静态INCLUDE的区别 动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true">它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面 静态include主要是对静态页面的引入,不会检查所包含文件的变化
<% @ include file="include.html" %>
动态include主要是对动态页面的引入,它总是会检查所引入的页面的变化,如果所包含的资源在请求间发生变化
,则下一次请求包含<jsp:include>动作的jsp时,将包含资源的新内容。
另一方面,include指令在转换时一次性地将内容复制到jsp中,如果所包含的资源发生变化,则使用include指令的jsp将不能反应出新的内容,除非重新编译该jsp 。
所以我们可以总结出:jsp中include有两种用法 ,分别是:
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/>
前者是指令元素、后者是行动元素。具体它们将在哪里用?怎么用及它们有什么区别?这应该是很多人看到它都会想到的题目。下面一起来看看吧。
平常当利用程序中全部的页面的某些部分(例如题目、页脚和导航栏)都雷同的时候,我们就可以考虑用include。具体在哪些时候用<%@ include file=””%>,哪些时候用
<jsp:include page=”” flush=”true”/>.这种情势。首先要知道的是它们中间的区别。只有了解了它们用法的不同才懂得该在何时去用以及怎么选择。
<%@ include file=” ”%>
jsp的include指令元素读入指定页面的内容。并把这些内容和本来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。
这里对翻译阶段进行一下说明:我们知道,jsp页面不能原封不动地被传送给浏览器,全部的jsp元素都必须首先由服务器进行处理。这是通过将jsp页面转达化成servlet,然后执行这个servlet来结束的。服务器需要一个jsp容器来处理jsp页面。jsp容器平常以servlet的情势来实现,这个servlet经过配置,可以处理对jsp页面的全部请求。
Jsp容器重视将jsp页面转化成servlet(称为jsp页面实现类—JSP Page implementation class),并编译这个servlet。这两步就组成了翻译阶段.
由此我们就会知道:jsp页面是把include指令元素所指定的页面的实际内容(也就是代码段)参加到引入它的jsp页面中,合成一个文档后被jsp容器将它转化成servlet。可以看到这时会产生一个临时class文档和一个java文档。