<%@include%>和<jsp:include>区别浅谈
jsp中include有两种方式:
1.指令元素include:<%@ include file=""%>
2.动作元素include:<jsp:include page="" fluse="true"/>
这两种方式有啥用?有什么区别?这一切都应该从他们的原理入手分析,下面一个一个分析
一、指令元素include
<%@ include file="文件的相对路径或绝对路径"%>
file属性为要引入文件的相对路径或绝对路径,不支持表达式,也不允许通过?向被引入文件传递参数
工作流程:
<%@ include file="include.jsp"%>执行时间:翻译过程中执行引入操作(将jsp转换为servlet)。
注意:因为index.jsp中包含<body>元素,所以include.jsp中最好不要包含<body>元素,因为<%@include%>会将include.jsp页面上的所有元素都包含到index.jsp中了。
二、动作元素include
<jsp:include page="被包含文件的路径" flush="true/false"> <jsp:param name="参数名称" value="参数值"/> </jsp:include>
page属性为被包含文件的相对路径或绝对路径,支持表达式,可以通过?传递参数。
flush表示在载入引入文件内容时是否清空缓冲区,对于jsp1.2以下版本需要设置为true,高版本默认false就可以
工作流程:
由于html文件没法翻译成class,所以jsp:include引入html会没做用