<jsp:include />与<%@ include %>简单总结
一、<%@ include file="#"%>
处理方式:内容原封不动插入包含页使用该指令的位置,jsp编译器再对这个合成的文件进行编译,编译后的文件只有一个。
包含方式:服务器将两个文件合成后由jsp编译器编译成一个class文件,所以被包含文件的内容是固定不变的,若改变此文件,主文件会重新编译。也称静态包含。
1、新建两个jsp页面
2、在a.jsp页面中添加如下代码,让它包含b.jsp
3、b.jsp页面代码如下
4、在浏览器中访问a.jsp
5、右键查看源代码,发现把b.jsp页面的所有代码头包含进来了
6、查看eclipse下的发布文件,发现只有a.jsp的编译文件而没有b.jsp的
7、查看a_jsp.java文件如下
8、总结:
inlucde 用于通知JSP引擎在翻译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件,这种在源文件级别进行引入的方式称之为静态引入,当钱JSP页面与静态引入的页面紧密结合为一个Servlet。
可以把公共的要引入的css 或者js资源文件放在一个公共被引入的jsp中,这个jsp中直接声明jsp以后只写引入的资源就可以了,不用写head body meta 等等。然后在其他jsp中被引入,简洁。
二、<jsp:include page ="#" flush="true|false"/>
处理方式:当该动作被执行时,程序会将请求转发到被包含的页面,并将结果输出到浏览器中,然后返回包含页执行后面的代码。为服务器执行的是两个文件,jsp编译器会对两个文件进行编译
包含方式:通常用来包含那些需要经常改动的文件,服务器执行的是两个文件,被包含文件的改动不会影响主文件,服务器不会对主文件重新编译,只需对被改动的文件重新编译即可。当该动作标识被执行时,该标识包含的目标文件才会被编译,否则不编译。也称动态包含。
使include页面携带入参
<jsp:include page=”common/a.jsp” flush=”true” >
<jsp:param name=”fitstParamer” value=”firstValue”>
<jsp:param name=”lastParamer” value=”lastValue”>
</jsp:include>
例如:
<jsp:include page="/common/page-footer.jsp">
<jsp:param name="total" value="${pageBean.total}"/>
<jsp:param name="totalPage" value="${pageBean.totalPage}"/>
<jsp:param name="pageNo" value="${pageBean.pageNo}"/>
<jsp:param name="fixed" value="true" />
</jsp:include>