JSP中include指令和include动作区别

首先

<%@ include file=” ”%>:为指令元素

<jsp:include page=” ” flush=”true”/>:为 动作元素

先说指令元素:

include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。

然后经过两个阶段:

1.将jsp翻译成 servlet 

2.servlet 翻译成 .class文件

这样的话,在被引入文件中请不要加入 contentype 的属性 ,因为jsp页面中不能指定多个contentType

动作元素:

它并没有把所要添加的jsp的代码加入到被添加的jsp中

只是在运行时引入了要添加的jsp页面执行后所产生的应答,这意味着我们可以指定任何能够产生应答的Web资源,(例如一个servlet或一个jsp页面),只要这些资源所产生的类型和jsp页面产生的编码类型相同(如果编码类型不同,则会出现乱码).JSP容器将通过一个内部的函数调用来执行指定的资源,因此,这些被引入的资源可以帮 助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象.以及所有原来的请求参数.

如果修改了要添加的jsp页面,那么可以立刻使用该页面的最新版本,这是因为对待被引入的页面的方式与对待由浏览器直接调用的jsp页面的方式完全相同。即容器检测页面的变化,并自动进入翻译阶段,以得到页面的最新版本。

以下是对include 两种用法的区别,主要有两个方面的不同:

执行时间上:

<%@ include file=”   .jsp”%> 是在翻译阶段执行

<jsp:include page=”  .jsp” flush=”true” /> 在请求处理阶段执行.

引入内容的不同:

<%@ include file=”  .jsp”%>引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.

<jsp:include page=”  .jsp” flush=”true” />引入执行页面或servlet所生成的应答文本.

大家可以参考:http://developer.51cto.com/art/200902/111134.htm

原文地址:https://www.cnblogs.com/lizhiyan-world/p/3734522.html