一、 <%@ include file="header.inc"%>

  • 该指令在编译之前先读入指定的页面中的内容(并不对动态内容求值),融合后的完整页面再被整体的转换为一个servlet。

    这意味着主页和被引入的页面共享所有的页面作用域数据。
    因此,如果主页面中声明了一个变量,而在某个被引入的页面中也声明了一个同名的变量,那么在翻译阶段将会造成一个错误,因为组合后的页面无法进行编译。

  • 被引用页面改变后,容器可能不会马上产生反应。
  • JSP规范建议在使用include指令引入JSP页面时,最好使用不同的文件扩展名,因为它们一般都不是完整而合法的页面,如:可以使用这些替代的文件扩展名:.jspf或 .jsf。
  • 执行时机:在翻译阶段(将JSP页面转换成servlet的阶段)

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

  • 该行为并不是要引入指定页面的实际内容,它将引入执行该引入页面后所产生的应答

    这意味着你可以指定任何能够产生文本应答的web资源。JSP容器将通过一个内部的函数调用来调用指定的资源。因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象,以及所有的请求参数。

  • 注意,它不能访问任何页面作用域属性,或是在主页面中声明的脚本变量。
  • 执行时机:在请求处理阶段。

三、 <c:import url="header.jsp"/>

  • <c:import>行为和<jsp:include>相同;
  • 另外它还可以从外部资源引入数据,比如不同的web应用程序;
  • 另外它还可以在被引用页面改变后,容器立刻能产生反应;
  • 所以应该使用<c:import>来代替<jsp:include>的使用。
  • 执行时机:在请求处理阶段。

JSP页面包含其他页面的三种方式及区别的更多相关文章

  1. Java实现线程的三种方式和区别

    Java实现线程的三种方式和区别 Java实现线程的三种方式: 继承Thread 实现Runnable接口 实现Callable接口 区别: 第一种方式继承Thread就不能继承其他类了,后面两种可以 ...

  2. python核心高级学习总结3-------python实现进程的三种方式及其区别

    python实现进程的三种方式及其区别 在python中有三种方式用于实现进程 多进程中, 每个进程中所有数据( 包括全局变量) 都各有拥有⼀份, 互不影响 1.fork()方法 ret = os.f ...

  3. 使用javascript实现在页面打印的效果的三种方式

    <div id="console"></div> <script type="text/javascript"> var c ...

  4. javascript函数命名的三种方式及区别

    1, function fn(val1,val2) { alert(val1+val2); } fn(1,2); 2, var fn=function() { alert(val1+val2); } ...

  5. React创建组件的三种方式及其区别

    内容转载于http://www.cnblogs.com/wonyun/p/5930333.html React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归; 具体的三种方式: ...

  6. 301-React Ext-React创建组件的三种方式及其区别

    一.概述 React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归:具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形 ...

  7. vue定义data的三种方式与区别

    在vue中,定义data可以有三种写法. 1.第一种写法,对象. var app = new Vue({ el: '#yanggb', data: { yanggb: 'yanggb' } }) 2. ...

  8. java web中日期Date类型在页面中格式化显示的三种方式

    一般我们经常需要在将服务器端的Date类型,传到页面进行显示,这就涉及到一个如何格式化显示Date类型的问题,一般我们有三种方式进行: 1)在服务端使用SimpleDateFormat等类格式化成字符 ...

  9. JQuery的几种页面加载完执行三种方式

      jquery加载页面的方法(页面加载完成就执行) 1. $(function(){ $("#a").click(function(){ //adding your code h ...

  10. js页面刷新跳转的几种方式及区别

    跳转常用方法: window.location.href="index.php"; window.history.back(-1);//类似于按钮,参数是负几,就后退几次. win ...

随机推荐

  1. Firefox_64.0 中selenium ide_3.4.4的使用教程(实操)

     说明:旧版的selenium IDE有很多功能,在新版中都去除了,很多功能都做不了. 写于:2018.12.31 一.安装selenium IDE 下载和安装这里推荐参考文章:https://blo ...

  2. mysql update语句与limit的结合使用

    有时候有需要批量更新数据表中从多少行到多少行的某个字段的值 mysql的update语句只支持更新前多少行,不支持从某行到另一行,比如 UPDATE tb_name SET column_name=' ...

  3. 在配置em时运到报错ORACLE_UNQNAME not defined

    Oracle 11G R2 RAC 配置em时报错 Environment variable ORACLE_UNQNAME not defined. oracle ORACLE_UNQNAME 借楼主 ...

  4. solr的访问权限管理及ubuntu下iptables的设置

    Apache Solr 是一个开源的搜索服务器,该平台默认允许匿名访问,攻击者可读取平台中各类敏感信息.之前考虑过增加账号密码访问,但是没有搞定,所以采用了曲线救国的方式,设置solr服务器只允许部分 ...

  5. cmake使用2

    CMake支持大写.小写.混合大小写的命令. . 添加头文件目录INCLUDE_DIRECTORIES 语法:include_directories([AFTER|BEFORE] [SYSTEM] d ...

  6. String 部分源码分析

    String 无参数构造函数 /** * 底层存储字符串的目标字节数组, * Jdk 8 之前都是字符数组 private final char[] value; */ @Stable private ...

  7. 用Vue来实现音乐播放器(二十三):音乐列表

    当我们将音乐列表往上滑的时候   我们上面的歌手图片部分也会变小 当我们将音乐列表向下拉的时候   我们的图片会放大 当我们将音乐列表向上滑的时候   我们的图片有一个高斯模糊的效果 并且随着我们的列 ...

  8. LeetCode All in One 题目讲解汇总(转...)

    终于将LeetCode的免费题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开个题目汇总贴,并附上每道题目的解题连接,方便之后查阅吧~ 如果各位看官们,大神们发现了任何错误,或是代码无法通 ...

  9. 【MyBatis】----【MyBatis】--封装---别名---properties

    一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration ...

  10. appium输入和清除操作各方法对比(android)

    最近在写android app自动化测试时,发现输入和清除操作耗费时间比较长,下面我用了不同的方法进行输入和清除操作,对比下时间(选取测试的一组数据做分析),选出最佳方法. 1.输入操作 1.1.we ...