一般来说,include在jsp中有两中用法:一种是引入html静态页面 ,比如一些logo,或者标题等等;另一种是引入jsp页面。
1.两种用法
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/>
2.用法区别
(1)执行时间上区别
<%@ include file=”relativeURI”%> 是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.
(2)引入内容的不同
<%@ include file=” ”%>
jsp的include指令元素读入指定页面的内容。并把这些内容和本来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所天生的应答文本.
3.如何使include页面携带入参
<jsp:include page=”<%=pageSelectedAtRuntime%>” flush=”true” >
<jsp:param name=”fitstParamer” value=”firstValue”>
<jsp:param name=”lastParamer” value=”lastValue”>
</jsp:include>
补充:程序不会将 jsp页面原封不动的传给jsp页面,中间走的还是servlet翻译这个过程;
下面我们对include中的路径问题进行简单总结:
在jsp的include标签中使用绝对和相对路径
jsp中的include标签可以使用相对路径和绝对路径,区别在于路径的第一个字符是否为”/”,例如:
假设有如下web路径:
webRoot
│
│
├ [jsp]
│ │
│ │
│ ├ [subFolder]
│ │ │
│ │ subFile.jsp
│ │ │
│ │
│ myPage1.jsp
│ mypage2.jsp
│ │
│ │
│
global.jsp
│
│
相对路径
<!-- I am myPage1.jsp -->
<%@include file="subFolder/subFile.jsp"%>
<%@include file="./myPage2.jsp"%>
<%@include file="../global.jsp"%>
绝对路径
<!-- I am myPage1.jsp -->
<%@include file="/global.jsp"%>
<%@include file="/jsp/myPage1.jsp"%>
<%@include file="/jsp/subFolder/subFile.jsp"%>
**补充:**include的file属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释。