jsp中include的不同用法

    动态include用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数.

    静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>

    JSP动态INCLUDE和静态INCLUDE的使用方法及其区别:

    指令元素 <%@ include file=" "%>

    行为元素

    应用时机:当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,

    <%@ 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文件.


    主要有两个方面的不同;

    一:执行时间上:

    <%@ include file="relativeURI"%> 是在翻译阶段执行

    在请求处理阶段执行.

    二:引入内容的不同:

    1. <%@ include file="relativeURI"%>

    引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.

     2. 引入执行页面或servlet所生成的应答文本.

    另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.

参考链接

你可能感兴趣的:(jsp)