• 动态include与静态include的区别


    搬一下以前写的

    个人总结:

    动态INCLUDE 用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE 用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>

    动态include在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;
    静态include在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管

    jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含
    @ include是先把文件包含就来,然后统一编译 先包含,后编译

    动作包含的属性:

    page:指定所包含资源的相对url路径,该资源必须时同一web应用程序的组成部分。

    flush:指定在执行include动作后是否应刷新缓冲区,在jsp1.1中,该属性必须设置为真。

    使用动态include动作时,根据jsp1.1规范,jsp容器允许判断通过include指令包含的资源是否发生变化。如果发生变化。则容器可以重新编译包含该资源的jsp,然而,该规范并没有提供向容器表明某个包含的资源发生变化的机制。

    动态include的优点和不足:
    
    优点:
    1:引入和同步一个动态的页面,使jsp页面更具灵活性
    2:能和不同页面之间进行信息的交互和快捷的实现方式。
    3:改变了原始的所有页面编码都放在一个jsp上,使不同的功能分别写在不同页里,通过动态include方式引用到页面,更易于编码,更易于管理。
    不足:

    动态的引入时需要频繁的变化和页面信息的更新和交互,要占用大量的资源开销。降低页面的访问速度。如果在没必要动态引入的情况下,不要使用动态include
    应该注意事项:

    1:动作的flush属性必须要定义,不定义会出现转换错误。而且设置的flush必须要为true
    2:在动作中指定的页面必须是同一web应用程序的一部分。如果引入的是非同一web应用的页面将导致请求时错误。
    stareblankly.cn
  • 相关阅读:
    1137 Final Grading (25 分)
    1136 A Delayed Palindrome (20 分)
    1135 Is It A Red-Black Tree (30 分)
    1134 Vertex Cover (25 分)
    1133 Splitting A Linked List (25 分)
    1074 Reversing Linked List (25 分)
    1132 Cut Integer (20 分)
    HDU 3342 Legal or Not
    IDEA解决JSP页面无法使用EL表达式问题
    25. Bootstreap 下拉菜单
  • 原文地址:https://www.cnblogs.com/stareblankly/p/4753845.html
Copyright © 2020-2023  润新知