JSP中动态INCLUDE与静态INCLUDE的区别
动态INCLUDE 用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE 用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>
上面所说的"检查所含文件中的变化"是什么意思呢, 大家能不能给我举一个例子
------解决方案--------------------意思就是说 假如你的页面时一个变化的..例如 网页的内容是从数据库读出来的
就是每次显示都有可能不一样
明白
------解决方案--------------------这样说吧
你用静态的时候只在include的时候加载一次,加载的时候是什么样字就显示成什么样子
但是用动态的时候当你加载之后如果被加载页面有变化,调用include的页面也会跟着变化
------解决方案--------------------区别是:
<jsp:include page="included.jsp" flush="true" />每次访问父页时,web容器都要重新编译一次这个父jsp,当然子页有改变会立即更新显示,一般用于引入经常改变的小片段,如各大网站经常变化的部分都是使用它。
<%@ include file="included.htm" %> 只是在第一次访问时把子页包含并进行编译,所以用于包含不改变的静态页面。
------解决方案--------------------检查所含文件中的变化就是说如果“所含文件included.jsp”做了一些改动
经过重新编译了,动作实现 <jsp:include page="included.jsp" flush="true" />
会检查文件中的变化,并且也重新编译。
<%@ include file="included.htm" %> 不会检查included.htm是否发生变化。
也就是说还继续显示原来的页面。
------解决方案--------------------动态include: 编译出来是两个文件, 显示的时候是 调用的关系,可以使用参数.
静态include: 编译出来是一个文件, 被include的文件内容被编译到了父文件里.不可以使用参数.