JSP页面的静态包含和动态包含的联系和区别

JSP页面的静态包含和动态包含

 

JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含:

<jsp:include page="被包含页面"flush="true">。下面以一个例子来说明如何使用包含。

 

实例:

项目文件树:

 

 

header.jsp文件中内容:

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">

    <title>Insert title here</title>

</head>

<body>

<h1>This is header</</h1> 

 

content.jsp文件中内容

<table border="1">

    <tr>

        <td>col1</td>

        <td>col2</td>

    </tr>

    <tr>

        <td>col1</td>

        <td>col2</td>

    </tr>

</table>

 

footer.jsp文件中内容:

 

        <hr>

        copyright: 1999-2010

    </body>

</html>

 

静态包含:

index.jsp文件中内容:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>

<%@ include file="/header.jsp" %>

<%@ include file="/content.jsp" %>

<%@ include file="/footer.jsp" %>

 

页面显示结果:

被编译成的java文件:

 

 

动态包含

 

index.jsp文件中内容:

        

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>

<jsp:include page="/header.jsp"></jsp:include>

<jsp:include page="/content.jsp"></jsp:include>

<jsp:include page="/footer.jsp"></jsp:include>

 

页面显示结果:

 

被编译成的java文件:

说明

 

这个例子,使用静态包含和动态包含最终的执行结果相同,但是实现过程不同,很明显编译成的java文件数目不同。

 

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

 

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

文件称为包含文件,比如上文中的header.jsp文件.

 

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

2_最终编译成java文件的数目不同。(从上面的例子可以看出)

 

   *_静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,

     然后作为一个整体编译。最终编译为一个java文件。

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

3_执行时间不同

   *_静态包含发生在:JSP---->java文件阶段。

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

 

4_静态包含在两个文件中不能有相同的变量,动态包含允许。

     由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的

     变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,

     变量所在的空间不同,自然不会出现覆盖等现象。

 

 5_无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。

       静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含

   最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程

   是一个请求转发的过程,自然也使用同一个request对象了。

 

静态包含和动态包含的使用

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

 

 

猜你喜欢

转载自blog.csdn.net/qq_41264674/article/details/81315853