首页 > 代码库 > Jsp Include指令 与动作区别
Jsp Include指令 与动作区别
在说include指令和动作之前,我们先来了解下 jsp的生命周期。
jsp生命周期
分为5个阶段
- 解析 servle容器检查页面语法
- 翻译将jsp编译成servlet源文件
- 编译 servlet容器将servlet源文件,生成为servlet类
- 运行加载对应的servlet类,创建实例,调用方法
- 销毁调用servelt销毁方法,销毁实例
以上为基础,进入正题
jsp的include有两种形式分别为
- <%@include file=" " %>
- <jsp:include page="" flush="true"/>
前者是指令,后者是动作元素虽然他们都能实现将外部文档包含到jsp文档中的功能。名称也相识。区别在哪里呢,如何使用。现在我们一起来看看吧
通常当应用程序中所有的页面的某部分都相同时,可以考虑用include,具体在哪些时候用指令,哪些时候用个动作。
首先要明白他们之间的区别,只有了解用法才能更深刻理解如何去选择
include指令
指令是在jsp页面转换成servle源文件之前进行的。读入指定页面内容,和原页面融合到一起,进行翻译。(生命周期翻
译阶段),生成一个servle源文件。
优点:功能强大,包含所有页面代码。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为
主页面不会自动地查看被包含的页面是否发生更改。
include动作
Jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。
服务器对指向url的资源解释。(该url可以使servlet,jsp或html)。将产生的输出放到主页面中。这种方式与转发类中的include类似。
req.getRequestDispatcher("").include(arg0,arg1)//转发
优点:它的优点是在被包含的页面发生更改时,无须对主页面做出修改。
对比指令和动作
从上可以看出,他们的根本不同在于被调用的时间。
动作在请求期间被激活,而指令是在页面转换期间被激活。
小结:
两者之间的差异决定着他们在使用上的区别。明白他们的作用时间 和包含的内容。在使用时,就可以通过考虑各方面的因素,来决定使用哪一种方式。尽管各自都有一定的优缺点,在实际使用中,还是应优先考虑使用jsp:include动作,这是因为它在代码维护上的优势远胜过其在功能上的不足
Jsp Include指令 与动作区别