jsp中~~~~~~~include指令 和 <jsp:include>动作的区别是什么?

来源:百度知道 编辑:UC知道 时间:2024/07/03 03:11:49

<%@ include file="header.inc"%>该指令在编译之前先读入指定的页面中的内容(并不对动态内容求值),融合后的完整页面再被整体的转换为一个servlet。

<jsp:include page="header.jsp"/>该行为并不是要引入指定页面的实际内容,它将引入执行该引入页面后所产生的应答

简单说来:
include指令是指把其它页面的JAVA代码(源码)加进来,跟本页面的代码合并在一起,相当于把源码从那个页面复制到本页面中来,然后再编译。所以变量可以共用。并用由于本页面编译时已经包含了别的文件的源码,所以以后其它页面更改时,本页面并不理会,因为已经编译过了。
<jsp:include>动作是指两个页面的代码运行完以后,再把包含的那个页面运行后的HTML结果页面加到本页面运行后的HTML结果页面中来。所以变量不能共用。

include指令合并静态文档或Jsp页面中的内容
可以用于包括动态生成的输出结果,因此可以包含一个Servlet
include指令在编译期合并为一个文档
include动作在请求时进行包括处理
共享局部变量
include指令各文件中的声明的脚本变量在所有组成的页面中有效
include动作在一个文件中声明的脚本变量不能用于其他页面,除非将变量放置在request,session,application作用域中
修改的生效
include指令被包含文件被修改,不会立即生效,除非修改主页面或删除主页面的类
include动作修改了被包含的文件立即生效
变量的作用域
include指令中的要注意变量命名冲突情况
include动作不会出现变量命名冲突问题,因为他们实际上是局部变量

include是静态包含,不会检查更新,编译的时候和主页一同进行编译
<jsp:include> 动态包含, 会检查更新 编译的时候单独进行编译