从书上看到的,记下来以作参考。

相同点:<%@ include file="url"%>指令与<jsp:include page="url"/>动作标识都可以用来包含文件


不同点:

(1)<%@ include file="url"%>指令是通过file来指定被包含的文件,file属性不支持任何表达式;<jsp:include page="url"/>动作标识使用page来指定文件,而page属性支持jsp表达式。


(2)<%@ include file="url"%>,被包含的文件会原封不动的插入到原页面中,然后JSP编译器再将合成后的文件最终编译成java文件;<jsp:include page="url"/>,当该标识被执行时,程序会将请求转发到被包含的页面并将执行结果输出到浏览器中,然后返回原页面继续执行后面的代码。对于这些文件JSP编译器是分别进行编译的。


(3)<%@ include file="url"%>指令包含文件时,由于被包含的文件最终会生成一个文件,所以在两个文件中不能有重名的变量或者方法;<jsp:include page="url"/>动作标识包含文件时,由于每个文件都是单独编译的,所以重名的方法和变量是不冲突的。