• java Web jsp页面的静态包含和动态包含


    现在有头 体 尾 三个jsp页面

    top.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <h1>我是top1111111111111页面</h1>

    body.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <h1>我是body页面</h1>

    footer.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <h1>我是footer页面</h1>

    静态包含 main.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>静态引入</title>
    </head>
    <body>
        <%@ include file="/01_jsp/top.jsp" %>
        <%@ include file="/01_jsp/body.jsp" %>
        <%@ include file="/01_jsp/footer.jsp" %>
    </body>
    </html>

    动态包含 main.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>动态引入</title>
    </head>
    <body>
        <jsp:include page="/01_jsp/top.jsp"></jsp:include>
        <jsp:include page="/01_jsp/body.jsp"></jsp:include>
        <jsp:include page="/01_jsp/footer.jsp"></jsp:include>
    </body>
    </html>

    静态和动态包含的区别与联系

      注:下文将包含有其它文件的jsp文件称为主体文件,比如上文中的index.jsp文件。将被包含的文件称为包含文件,比如上文中的header.jsp文件。

      <%@ include file=” ”%>是指令元素。<jsp:include page=” ”/>是行为元素


    最终编译成java文件的数目不同:
      静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,然后作为一个整体编译。最终编译为一个java文件。

      动态包含是各个jsp文件分别转换,分别编译。最终编程成多个java文件。

    执行时间不同
      静态包含发生在:JSP---->java文件阶段。

      动态包含发生在:执行class文件阶段。动态加入。

    静态包含在两个文件中不能有相同的变量,动态包含允许。
      由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,变量所在的空间不同,自然不会出现覆盖等现象。

    无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。
      静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程是一个请求转发的过程,自然也使用同一个request对象了。

    简单总结一下,就一句话:被包含的页面是静态页面就用静态包含,是动态页面就用动态包含。(当然,不是很绝对,但是这样用没有错。)

     

  • 相关阅读:
    读书笔记_Effective_C++_条款二:尽量以const, enum, inline替换#define
    读书笔记_代码大全_第14章_组织直线型代码_第15章_使用条件语句
    读书笔记_代码大全_第31章_布局与风格
    读书笔记_代码大全_第16章_控制循环
    读书笔记_Effective_C++_条款五:了解C++默默编写并调用哪些函数
    python学习笔记(三)——字符串
    python学习笔记(六)——函数
    Windows下安装Django
    python小专题——time模块
    python学习笔记(四)——数据字典
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9244653.html
Copyright © 2020-2023  润新知