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对象了。


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

  • 相关阅读:
    SP6779 GSS7
    P2218 [HAOI2007]覆盖问题
    day10-包的定义和内部类
    day09-final、多态、抽象类、接口
    day08-代码块和继承
    day07-变量,封装
    day05-方法、数组
    day04-switch、循环语句
    day03-运算符、键盘录入
    day02-基本概念
  • 原文地址:https://www.cnblogs.com/weiikun/p/10993255.html
Copyright © 2011-2022 走看看