JSP中include指令和include动作有什么区别?
include的作用是用来在当前文件中引入另外一个文件,以便在当前文件中使用。例如:应用程序中所有的页面的某些部分(例如说标题、页脚、导航栏等)都一模一样时,就可以考虑把相同的部分提取出来写入一个单独的文件之中,然后通过include方法引入。
include有两种使用方法:inlcude指令和include动作。
1、include指令
(1)语法:
<%@ include file=“test.jsp” %>
(2)include指令在编译时,编译器就会把指令所指向目标文件的内容复制到指令所在的位置,替换文件,最终形成一个文件,在运行时只有一个文件。
所以适用于包含静态页面的情况。
(3)使用include指令时,当前页面和被包含页面可以共享变量。
(4)使用include指令时,新生成的JSP页面要符合JSP语法要求,应当避免变量名的冲突。
(5)include指令会修改被包含文件,但是不会立即生效,除非修改主页面或者删除主页面的类。
2、include动作
(1)语法:
<jsp:include page=“test.jsp” flush=“true”>
<jsp:param name=“name” value=“value”/>
</jsp:include>
(2)include动作是运行时语法,在主页面被请求时,才将用到的页面包含进来,涉及两个文件,类似于方法调用。
所以更适用于动态页面的情况。
(3)使用include动作时,页面中声明的变量不可用于另一文件,除非变量被放在request、session、application作用域中。
(4)使用include动作,不存在变量冲突的问题。
(5)使用include动作修改了被包含的文件,会立即生效。
3、其他
include动作有更好的维护性,所以当两种方式都适用的时候,优先考虑使用include动作。
仅在所包含文件中定义了主页面所用到的字段或者方法,或者包含文件设置了主页面的响应报头时,才使用include指令。
例如,一般很多站点的导航部分还有版权部分都是相同的,在每个页面都会出现,可以考虑把这些内容放在单独的文件中,然后使用include指令即可。