JSP中动态INCLUDE与静态INCLUDE的区别?
动态:INCLUDE <jsp:include page="some.jsp" flush="true"/>
静态:<%@ include file="some.some(txt,jsp,html)" %>
前者为include动作,后者为include的指令
区别:
后者---〉用来向当前页面中插入一个静态文件的内容,注意,此时include所包含文件的内容是在编译的时候插入到原文件中的。正因为如此,如果include文件(如你的some.jsp)变化了,而jsp文件没变化,则jsp引擎会认为jsp页面没有改变过,此时其将不再对源代码重新编译,即便对include文件做了修改,在jsp页面中看到的将还是以前的。
前者--->include动作是jsp向当前页面插入文件的另一方法,被插入的文件(如你的parameter.jsp)既可以是静态的,也可以是动态的。它是将包含文件编译的结果插入当前位置。如果包含文件改动了,其能判断文件已经变化,并对包含文件重新编译,即不需要对主页面进行更新
后者是将some.TXT通过服务器处理后,将jsp包含进来.
前者是先将文件包含进来,再处理.
所以,如果用前者,就必须保证文件中的JSP语句是正确的.所有的变量定义都是独立的.
如果是后者,则可以在some.some中使用外部在INCLUDE它之前所定义的变量.
两都还有一个区别, 就是前者是动态更新的,也就是说some.some如果发生了变量, 所有包含它的文件都会变.而后者, 就只有将所有包含some.some文件的先改变了,重新编译才能看到新的效果.