• include与jsp:include区别


    
    jsp 中include有两种形式,分别是
    <%@ include file=” ”%>
    <jsp:include page=” ” flush=”true”/>
    前者是指令元素、后者是行为元素。通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,就可以考虑用include。<%@ include file=” ”%>,jsp的include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。)
    include与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.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释
    三:两种混和解决办法: 一种混合搭配的解决方案

    include 伪指令在某些网站上有其用武之地。例如,如果站点包含一些(如果有变化,也很少)几乎没有变化的页眉、页脚和导航文件,那么基本的 include 伪指令是这些组件的最佳选项。由于 include 伪指令采用了高速缓存,因此只需放入包含文件一次,其内容就会被高速缓存,其结果会是极大地提高了站点的性能。

    然而,对于现在许多 Web 应用程序或站点而言,地毯式的高速缓存并不能解决问题。虽然页眉和页脚可能是静态的,但是不可能整个站点都是静态的。例如,从数据库提取导航链接是很常见的,并且许多基于 JSP 技术的站点还从其它站点或应用程序上的动态 JSP 页面提取内容。如果正在处理动态内容,那么需要采用 jsp:include 来处理该内容。

    当然,最好的解决方案是经常把这两种方法混合搭配使用,将每种构造用到最恰当的地方。混合搭配包含解决方案的一个示例。

     

    <![CDATA[
    <%@ page language="java" contentType="text/html" %>
    <html>
    <head>
      <title>newInstance.com</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <link href="/styles/default.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <jsp:include page="header.jsp" flush="true">
      <jsp:param name="pageTitle" value="newInstance.com"/>
      <jsp:param name="pageSlogan" value=" " />
    </jsp:include>
    <%@ include file="/navigation.jsp" %>
    <jsp:include page="bookshelf.jsp" flush="true" />
    <jsp:include page="/mt-blogs/index.jsp" flush="true" />
    <%@ include file="/footer.jsp" %>
    </body>
    </html>
    ]]>


    上面的代码显示了前一篇文章中的示例索引页面。导航链接和页脚是静态内容,一年最多更改一次。对于这些文件,我使用了include 伪指令。内容窗格包含 Weblog 和“bookshelf”组件,它们是动态生成的。这两个组件需要一直更新,因此对它们,我使用了jsp:include 标记。 header.jsp 文件有点奇怪。这个组件是从另一个本质上是静态的 JSP 页面提取的。但是,正如您将注意到的那样,它从包含页提取页“标语”,然后将它显示出来。要处理这一共享信息,我们必须向页眉文件传入参数。而要处理那些参数,就必须使用 jsp:include 元素。


  • 相关阅读:
    在一个字符串中找到第一个只出现一次的字符
    查找最小的k个数
    动规:最大上升子序列
    平衡二叉树
    【笔记】php和mysql结合 搞了一个表出来
    设计模式心得(既设计模式篇终章):描述设计模式时的通用公式
    分享系列 之 linux IO原理与几种零拷贝机制的实现
    近期分享:BIO 与 NIO 的实质区别到底是什么?
    源码阅读笔记 之 ThreadLocal —— 不复杂,却有点绕的一个 per thread API
    小脑袋瓜充满了问号:为什么AMQP可以叫做 Advanced?JMS就要low一等吗?
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3322932.html
Copyright © 2020-2023  润新知