<%@ include > 与< jsp:include >

时间:2024-10-23 20:34:50

include指令表示在JSP编译时插入一个包含文本或者代码的文件,把文件中的文本静态地包含过去。也就是说,会把被包含的页面拷贝到包含的页面中指令所在的位置。

语法格式:<%@ include  file="relativeURL"%>

relativeURL为包含进来的文件路径,可以是HTML,JSP文件,也可以是其他格式的文本文件。

include在实际开发中到底有什么作用?

我们知道,在进行大型项目开发的时候,应尽量把各个组件模块化,JSP也是如此。例如,每个JSP页面中都有一个导航栏,那么我们就可以把这个导航栏写成一个公共的navi.jsp。然后在其他的页面中只要引入这个导航栏就行了。

使用include指令注意两点:

1、被包含文件中不能再使用<html><body></html></body>的标签,否则会与包含页面中的标签重复;

2、被包含文件的路径不能写成动态的,如:<%@ include  file="<%=xxx%>"%>;

3、被包含文件的路径中不能携带参数,如:<%@ include  file="navi.jsp?flag=1"%>。

<jsp:include>实现的是动态包含,它把显示的结果插入到当前页面来显示。

语法格式:<jsp:include page="relativeURL" flush="true"/>

page表示一个相对路劲,可以是静态文件名,也可以是计算出来的动态相对路径值。

flush表示为真时,当缓冲区满会自动清空。这个属性石必须属性,而且值必须为true。

include指令和include动作指令的区别

1、动态include用jsp:include动作实现,它总是会检查所含文件中的变化,适合用于包含动态页面。并且可以带参数。而静态include用include指令实现,它不会检查所含文件的变化,适用于包含静态页面。

2、动态include和静态include根本性的不同在于它们被调用的时间。动态include在请求期间被激活,而静态include在页面转换期间被激活。

3、动态include先编译后执行;静态include不编译。

4、静态include只能生成一个servlet,动态include可以生成多个servlet。

5、静态include做出的任何修改必须重启当前的web服务才能生效,动态include保存即生效。

6、静态include不能实现在请求区间内共享对象,而动态include支持。