JSP中的两种include的区别

本文详细介绍了JSP中的静态包含(%@includefile)与动态包含(jsp:include)的区别。静态包含是在编译阶段将文件内容直接合并到主文件中,而动态包含则是分别编译后再合并输出,支持传递参数并能感知文件变动。

一、<%@ include file=”relativeURI”%> 

   1.可以叫作静态include(静态包含),是jsp指令中的一种。

   2.在JSP页面被转化成servlet之前,和引入的JSP融合到一起,
   “先包含,后编译”,不会检查所含文件的变化,


   3.<%@ include file=""%>指令在编写代码的时候一般放在最顶部,主要附加的是被重用的代码,这里所说的附加是指把源代码原封不动的附加过来,例如在jsp程序中使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西。例如里面不要包含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错。 

  4.用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面,直接将内容先包含后处理
     

   静态include的结果是把其他jsp引入当前jsp,两者合为一体。 


     静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的. 

二、<jsp:include page=”relativeURI” flush=”true” />
    1.可以叫作动态include(动态包含),是jsp动作的一种。

    2.被引入的文件先编译,后包含进来,然后显示

    3.而应用<jsp:include page="" flush="" />标签导入一个重用文件的时候,这个文件是经过编译的,通俗点说就是附加这个要导入文件经过编译后的效果,所以可以含有与当前jsp程序中重复的内容,因为在附加过来之前就会被解析掉。

    4.它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,先编译之后再进 行处理。

 
      动态include的结构是两者独立,直到输出时才合并( 看看jsp生成的java文件就可以知道   了)。 


      动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都必须有自己创建,当然,还好它和include它的页面的request范围是一致的。

三、总结
   另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释。检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。



参考:http://blog.youkuaiyun.com/hackerain/article/details/6766206

    http://jingyan.baidu.com/article/5d368d1efbeed63f60c057c7.html





     本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/1886652,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值