<%-- 静态包含 --%>
<%@ include file="..." %>
<%-- 动态包含 --%>
<jsp:include page="...">
<jsp:param name="..." value="..." />
</jsp:include>

 

区别:

  1.最终编译成的java文件的数量不同

    静态包含转换成java文件时,将包含文件的内容“复制”到主题文件中,然后作为一个整体编译,最终编译为一个class文件,而动态包含是各个jsp文件分别转换,分别编译,最终编译成多个class文件

  2.执行时间不同

    静态包含是编译时包含 -JSP---->java文件阶段。如果包含的页面不存在则会产生编译错误,而且两个页面的"contentType"属性应保持一致,不能有相同的变量名

      因为两个页面会合二为一,只产生一个class文件,因此被包含页面发生的变化再包含它的页面更新前不会得到更新,需要重新编译更新。

    而动态包含是运行时包含 -执行class文件阶段,可以向被包含的页面传递参数,包含页面和被包含页面是独立的,会编译出多个class文件,

      如果被包含的页面不存在,不会产生编译错误,也不影响页面其他部分的执行

  3.无论是动态包含还是静态包含,其request对象都是相同的。

    静态包含最终编译成一个java文件,有一个request对象。 而动态包含最终编译成多个java文件,其实这些jsp组合的过程,是一个请求转发的过程,自然也使用同一个request对象了

    

posted on 2019-06-16 09:47  印记XP  阅读(1216)  评论(0编辑  收藏  举报