include指令与jsp:include动作标识的区别

include指令与<jsp:include>动作标识都可以用来包含文件,但是他们之间是存在很大差别的。

include指令的语法格式如下:

<#@include file="path"%>

path可以是相对路径,也可以是绝对路径。示例:

<#@include file="top.jsp"%>

<jsp:include>动作标识的语法格式如下:

<jsp:include page="url" flush="false|true"/>

<jsp:include page="url" flush="flase|true">
    子动作标识<jsp:param>
</jsp:include>

两者之间的区别如下:

1.include指令通过file属性指定被包含的文件,并且file属性不支持任何表达式;<jsp:include>动作标识通过page属性指定被包含的文件,而且page属性支持jsp表达式。

2.使用include指令时,被包含的文件内容会原封不动的插入到包含页中,然后jsp编译器再将合成后的文件最终编译成一个java文件;使用<jsp:include>动作标识包含文件时,当该标识被执行时,程序会将请求转发(注意是转发,而不是请求重定向)到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。因为服务器执行的是多个文件,所以JSP编译器会分别对这些文件进行编译。

3.在应用include指令包含文件时,由于包含文件和被包含的文件最终会生成在一个文件,所以在被包含文件、包含文件中不能有重名的变量或方法;而在应用<jsp:include>动作标识包含文件时,由于每个文件是单独编译的,所以在被包含文件和包含文件中重名的变量和方法是不相冲突的。

猜你喜欢

转载自blog.csdn.net/skye_95/article/details/81173562