JSP页面的静态包含和动态包含使用方法

 更新时间:2019-08-25 10:59:11   作者:佚名   我要评论(0)

JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含:<jsp:include page="被包含页面"flush="true">。下面以一个例子来说明如何使用包含。

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文件。

<%@ include file=” ”%>是指令元素。<jsp:include page=” ”/>是行为元素最终编译成java文件的数目不同。(从上面的例子可以看出)

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

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

执行时间不同

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

动态包含发生在:执行class文件阶段。动态加入。
静态包含在两个文件中不能有相同的变量,动态包含允许。
由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,变量所在的空间不同,自然不会出现覆盖等现象。
无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。
静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程是一个请求转发的过程,自然也使用同一个request对象了。

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

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

 jsp静态包含和动态包含的区别补充:

在jsp中有两种包含,静态包含<%@include file="xxx.jsp"%>和动态包含<jsp:include page="xxx.jsp">,下面说一下它们之间的区别

1、<%@include file="xxx.jsp"%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而<jsp:include page="xxx.jsp">是jsp中的动作指令,其文件的包含是发生在编译时期,也就是将java文件编译为class文件的时期

2、使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件

3、使用静态包含,包含页面和被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;而动态包含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取得在包含页面向下传递的参数

您可能感兴趣的文章:

  • JSP页面的动态包含和静态包含示例及介绍

相关文章

  • Oracle分组函数之ROLLUP的基本用法

    Oracle分组函数之ROLLUP的基本用法

    rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table
    2019-08-25
  • JSP页面的静态包含和动态包含使用方法

    JSP页面的静态包含和动态包含使用方法

    JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含:<jsp:include page="被包含页面"flush="true">。下面以一个例子来说明如何使用包含。
    2019-08-25
  • java通过jacob实现office在线预览功能

    java通过jacob实现office在线预览功能

    简介: 这篇文章中的代码都是参考于网上的,只做一个记录。主要做的就是实现一个office在线预览功能。 第一步:装office 第二步:下载jacob 打开网址下载,目
    2019-08-25
  • Java如何在PPT中绘制图形

    Java如何在PPT中绘制图形

    Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充、线条颜色、图形大小、位置等。下面将通过Java编程来演示在PPT中绘制图形的方法
    2019-08-25
  • PHP实现与java 通信的插件使用教程

    PHP实现与java 通信的插件使用教程

    由于公司这块项目需要和java对接的一些东西 又不想用webservice 所以弄了个php模块 折腾了好长时间编译一直过不去. 索性就把源码修改了.经测试可用. 另外附
    2019-08-25
  • android 实现APP中改变头像图片的实例代码

    android 实现APP中改变头像图片的实例代码

    具体代码如下所示: package com.example.studyapplication.fragment; import android.app.Activity; import android.app.AlertDialog; import android.con
    2019-08-25
  • MySQL性能优化神器Explain的基本使用分析

    MySQL性能优化神器Explain的基本使用分析

    简介 MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简
    2019-08-25
  • java使用RSA与AES加密解密的实例代码详解

    java使用RSA与AES加密解密的实例代码详解

    首先了解下,什么是堆成加密,什么是非对称加密?   对称加密:加密与解密的密钥是相同的,加解密速度很快,比如AES   非对称加密:加密与解密的秘钥是不
    2019-08-25
  • Java模拟并解决缓存穿透问题

    Java模拟并解决缓存穿透问题

    什么叫做缓存穿透 缓存穿透只会发生在高并发的时候,就是当有10000个并发进行查询数据的时候,我们一般都会先去redis里面查询进行数据,但是如果redis里面没有
    2019-08-25
  • 为什么阿里要慎重使用ArrayList中的subList方法

    为什么阿里要慎重使用ArrayList中的subList方法

    前言 集合是Java开发日常开发中经常会使用到的。 关于集合类,《阿里巴巴Java开发手册》中其实还有另外一个规定: 本文就来分析一下为什么会有如此建议?其背
    2019-08-25

最新评论