Jsp Include指令 与动作区别

在说include指令和动作之前,我们先来了解下 jsp的生命周期。

jsp生命周期

分为5个阶段

  • 解析 servle容器检查页面语法
  • 翻译jsp编译成servlet源文件
  • 编译 servlet容器将servlet源文件,生成为servlet
  • 运行加载对应的servlet类,创建实例,调用方法
  • 销毁调用servelt销毁方法,销毁实例

以上为基础,进入正题

jspinclude有两种形式分别为

  • <%@include file=" " %>
  • <jsp:include page="" flush="true"/>

前者是指令,后者是动作元素虽然他们都能实现将外部文档包含到jsp文档中的功能。名称也相识。区别在哪里呢,如何使用。现在我们一起来看看吧

通常当应用程序中所有的页面的某部分都相同时,可以考虑用include,具体在哪些时候用指令,哪些时候用个动作

首先要明白他们之间的区别,只有了解用法才能更深刻理解如何去选择

include指令

 指令是jsp页面转换成servle源文件之前进行的。读入指定页面内容,和原页面融合到一起,进行翻译。(生命周期翻

译阶段),生成一个servle源文件。

优点:功能强大,包含所有页面代码。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为

主页面不会自动地查看被包含的页面是否发生更改。

include动作

Jsp:include动作是在主页面被请求时,将次级页面的输出包含进来

服务器对指向url的资源解释。(该url可以使servletjsphtml)。将产生的输出放到主页面中。这种方式与转发类中的include类似。

req.getRequestDispatcher("").include(arg0,arg1)//转发

优点:它的优点是在被包含的页面发生更改时,无须对主页面做出修改。

对比指令和动作

从上可以看出,他们的根本不同在于被调用的时间。

动作在请求期间被激活,而指令是在页面转换期间被激活。 

小结:

两者之间的差异决定着他们在使用上的区别。明白他们的作用时间 和包含的内容。在使用时,就可以通过考虑各方面的因素,来决定使用哪一种方式。尽管各自都有一定的优缺点,在实际使用中,还是应优先考虑使用jsp:include动作,这是因为它在代码维护上的优势远胜过其在功能上的不足

 

你可能感兴趣的:(jsp)