JSP中两种include的差别

主要有两个方面的不同; 

 一:执行时间上: 

<%@ include file=”relativeURI”%> 是在翻译阶段执行,静态,执行速度较快.

<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行,动态,执行速度较慢.

二:引入内容的不同: 

<%@ include file=”relativeURI”%> 

引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起. 

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

另外在两种用法中file和page属性都被解释为一个相对的URI.

第一种之所以执行速度快,是因为它等同于内容替换,虽然是一个文件包含另一个文件,但在编译成class之前,二者已经合为一体,只产生一个class文件.

而第二种则会产生多个class文件,执行到包含部分时,被包含者返回的是处理之后的内容而非原文.这相当于主文件向被包含文件发送请求并得到它的响应.

第二种虽然比第一种慢,但它也有它的优势.

    1.因为是动态的,所以如果修改了被包含文件的内容,主文件不需要重新编译.

    2.第二种可以使用param子标记,可以更加灵活的处理文件内容(可以往里面传值然后返回不同的响应).要接收传进来的值可以使用:

        request.getParameter();

原文地址:https://www.cnblogs.com/xmjz/p/5310677.html