zoukankan      html  css  js  c++  java
  • jsp静态包含和动态包含

    JSP中有两种包含:

    静态包含:<%@ include file="被包含页面"%>

    动态包含:<jsp:include page="被包含页面" flush="true">

    它们有什么区别,都知道,JSP在WEB服务器中都要转换成一个java文件,java文件再编译成一个class文件。当请求JSP页面的时候,实际上运行的是这个class文件。

    从这个方面来说:

    静态包含发生在:JSP---->java文件阶段。动态包含发生在:执行class文件阶段。动态加入。

    静态包含:只生成一个java文件,动态包含:生成多个class文件。

    值得庆幸的是无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。

    什么都没例子来的实在:

    index.jsp页面:静态和动态包含其他页面。

    主要代码:

    静态包含页面:
    <%@include file="static.jsp" %><br>
    动态包含页面
    <jsp:include page="dynamic.jsp" flush="true"/>


    static.jsp被静态包含的页面。

    dynamic被动态包含的页面。

    经过编译以后生成的效果:

    打开index_jsp.java

    可以看到被静态包含的页面中的内容全部包含在了里面。而被动态包含的页面使用了:

    org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "dynamic.jsp", out, true);

    而被动态包含的页面,生成了一个新的java文件。


    再看代码:为什么说动态包含和静态包含的request是相同的,静态被包含页面和包含它的页面共享request是毋庸置疑的,而动态包含通过上面一行代码也就一目了然了。其实这些jsp组合的过程是一个请求转发的过程,自然也使用同一个request对象了。


    ---------------------

  • 相关阅读:
    Mysql 去重
    深入理解ob_flush和flush的区别
    Yii2 基础模板前后台登录分离
    Yii2 登录报错
    使用 php 内部web服务器
    SQL 分组后,获取每组中的最大值对应的数据
    跨域访问解决方案
    Spring Boot对静态资源的映射规则
    Spring Boot项目的探究
    Spring Boot项目的不同启动方式
  • 原文地址:https://www.cnblogs.com/weiikun/p/10993255.html
Copyright © 2011-2022 走看看