zoukankan      html  css  js  c++  java
  • <jsp:include>和<%@include file=""%>的区别(简单了解)

    简单了解

    include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改。由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译。因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素<jsp:include>。

    include指令

    include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改

    语法:<%@ include file="top.jsp" %>

    include动作

    jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的 结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面, 将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。

    语法: <jsp:include page="top.jsp" flush="true"/>

    <jsp:include>和<%@include file=""%>的区别

    1、在执行时间上

    <%@ include file=”relativeURI”%>                   是在翻译阶段执行
    <jsp:include page=”relativeURI” flush=”true” />  在请求处理阶段执行.

    2、引入内容的不同

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

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

    3、在编译上

    jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含

    @ include是先把文件包含就来,然后统一编译 先包含,后编译

    图解区别

    使用include动作还是include指令好呢?

      使用include指令,如果被包含的文件发生改变,那么,用到它的所有Jsp页面都需要更新。

      仅当include动作不能满足要求时,我们才应该使用include指令。

      有 些开发人员认为include指令生成的代码执行起来比使用include动作的代码更快。尽管原则上由可能的确如此,但性能上的差异很小,以致难以测 量,同时,include动作在维护上的优势十分巨大,当两种方法都可以使用时,include动作几乎肯定是首选的方法。

      对于文件包含,应该尽可能地使用include动作。仅在所包含的文件中定义了主页面要用到的字段或方法,或所包含的文件设置了主页面的响应报头时,才应该使用include指令。

    为什么人们还要使用它呢?

    因为include指令更为强大。include指令允许所包含的文件中含有影响主页面的Jsp代码,比如响应报头的设置和字段、方法的定义

     

    总结:

    <jsp:include page="">  父页面和包含进来的页面单独编译,单独翻译成servlet后,在前台拼成一个HTML页面。

    <%@include file=""%> 父页面和包含进来的页面,代码合并后,才一起翻译成servlet,反馈到前台,形成一个HTML页面。

  • 相关阅读:
    百度面试题
    分治法--二分查找、乘方、斐波那契数
    01-11李宁老师学Python视频课程(1):初识Python返回课程
    邮件发送的两种实现方法。
    Docker(一):Docker入门教程
    安装docker及在docker中安装python环境学
    vim编辑器的使用和CentOS有很多不同
    大一编程基础培训]==02-03-04-05课==类型
    大一编程基础培训]==08课==条件判断]==07课==Python的LIST与TUPLE数据类型
    Beautiful Soup 4.2.0 文档¶ BeautifulSoup对象内任何第一个标签入口,使用find()方法。
  • 原文地址:https://www.cnblogs.com/weibanggang/p/9504806.html
Copyright © 2011-2022 走看看