1.可使用一个JSP指令或者一个标准行为,在JSP页面中引入其余的页面片断。html
2. include指令:在翻译阶段(将JSP页面转换成servlet的阶段),JSP的include指令会读入指定的页面中的内容,并将这些内容和原来的页面融合在一块儿。web
<%@ include file=”header.html”%>jsp
引入的页面能够只包含静态内容(例如HTML),也能够是一个普通的JSP页面。主页面和引入的页面融和在一块儿(引入的页面只是最为普通的文本进行融合,并不对动态内容求值),融合后的完整页面再被总体的转换为一个servlet。函数
这意味着主页和被引入的页面共享全部的页面做用域数据。所以,若是主页面中声明了一个变量,而在某个被引入的页面中也声明了一个同名的变量,那么在翻译阶段将会形成一个错误,由于组合后的页面没法进行编译。翻译
include指令的一个常见用法是引入应用程序的全部页面都须要的公共声明。htm
JSP规范建议在使用include指令引入JSP页面时,最好使用不一样的文件扩展名,由于它们通常都不是完整而合法的页面,如:可使用这些替代的文件扩展名:.jspf或 .jsf。对象
被引用页面改变后,容器可能不会立刻产生反应。资源
<jsp:include>指令用于在运行时引入另外的资源。作用域
<jsp:include page=”navigation.jsp”/>servlet
这个指令是在请求处理阶段而不是在翻译阶段执行的。该行为并非要引入指定页面的实际内容,它将引入执行该引入页面后所产生的应答,这意味着你能够指定任何可以产生文本应答的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文件。