浅谈jsp静态包含和动态包含

静态包含和动态包含

  • 静态包含(属于指令)

    定义:在jsp编译时插入一个包含文本或者代码的文件(不识别被包含的文件是静态的页面还是动态的页面),这个过程是
    静态的,而包含的文件可以是jsp文件,HTML等,先包含,然后再将全部代码一起处理

          语法:<%@ include file="要包含的文件路径"%>这个是属于指令,属于jsp语法范畴
    
  • 动态包含(属于标签)
    定义:使用jsp:include标签,与静态包含不同的是,动态可以自动区分被包含页面是静态的还是动态的,若是静态的,
    则和静态包含一样,先包含进来,然后和全部代码一起处理,如果是动态的页面,则可以先进行动态的处理,再
    将处理后的结果包含进来

    注意:不能处理被包含页面含有HTML基本标签的问题

    语法:
         1)不传递参数:<jsp:include page="{文件路径|<%=表达式%>}" flush="true/false"/>
          2)传递参数:<jsp:include page="{文件路径|<%=表达式%>}" flush="true/false">
                            <jsp:param name="参数名" value="参数值"/>
                            <jsp:param name="参数名" value="参数值"/>
                     </jsp:include>
    

    这个属于标签,标签属于java范畴

    Flash 的作用
    在同一个 JSP 中,如果不断 include 自己(源文件),在逻辑上会形成死循环。若默认情况下,服务器会等待该文件被读到底端,然后才输出到客户端,并且销毁该次访问的 request 和 response。而当把flush 属性赋为真值时,在缓存累积了一定数据时,服务器会先提供一部分数据给浏览器,并等待后续内容。

    由此可以得出结论,在简单页面中,该属性不纳入考虑,而在页面包含大量数据时,为缩短客户端延迟,可将一部分内容先行输出。该属性在 Servlet 中也有对应的应用。

  • 静态包含与动态包含的区别

    共同点:都将被包含页面包含进去
    不同点:

     	1)语法不同:
           静态包含:<%@ include file="要包含的文件路径"%>
           动态包含:1)不传递参数:<jsp:include page="{文件路径|<%=表达式%>}" flash="true/false"/>
      				2)传递参数:<jsp:include page="{文件路径|<%=表达式%>}" flash="true/false">
     								<jsp:param name="参数名" value="参数值"/>
     								<jsp:param name="参数名" value="参数值"/>
     			 				</jsp:include>
     	2)执行方式不同:
     	   静态包含:不论包含的是静态页面还是动态页面,不区分静态页面还是动态页面,都是先包含然后一起执 行
           动态包含:可以自动区分被包含页面是静态的还是动态的,若是静态的,则和静态包含一样,先包含进来,
                   然后和全部代码一起处理,如果是动态的页面,则可以先进行动态的处理,再将处理后的结果包含进来
     	3)是否能传参:静态包含不能传参
     	   动态包含:如果包含的是静态页面,则不能传递参数,如果包含的是动态页面,则可以传参
     			这里的传参是指当前的页面可以传递参数到被包含的动态页面中,这样,被包含的动态页面可以
     			根据传过去的参数动态的变更页面
    
  • 缺点分析
    静态包含的缺点:被包含页面不能有HTML标签,不能重定义
    动态包含的缺点:不能有html静态标签

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值