zoukankan      html  css  js  c++  java
  • 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对象了。

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

     

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9244653.html
Copyright © 2011-2022 走看看