利用JSP的包含机制,可以有效的避免重复,把可重用的部分独立出去,使用include把它们包含到当前文件。JSP有两种包含机制:include指令和<jsp:include>标准动作。

1.include指令

2.<jsp:include>标准动作

3.内部原理

  include指令和<jsp:include>标准动作看上去一样,而且通常有相同的效果,但是它们生成的servlet代码并不相同。

  include指令在转换时发生,它就像把被包含的文件复制到当前文件一样;<jsp:include>标准动作在运行时发生,它在运行时插入“Header.jsp”的响应。

4.性能比较

  如果能够保证所包含的文件不再改变,那就应该使用include指令。不过使用指令会使生成的servlet类较大。

  而<jsp:include>标准动作会带来额外的性能开销,容器要根据页面属性创建一个RequestDispatcher,并应用include()方法,所包含的JSP针对同样的请求和响应对象执行,而且在同一线程中。

5.使用<jsp:param>定制包含的内容

  如果希望在包含页面时向被包含的页面传递参数,可以使用<jsp:param>传递参数:

  如果使用<jsp:include page="Header.jsp"></jsp:include>,即<jsp:include>体为空,则会报错。如果没有体,只能使用<jsp:include page="Header.jsp"/>的形式。

  <jsp:param>只能放在<jsp:include>或<jsp:forward>标准动作中。

6.第三种包含内容的方法

  使用JSTL的<c:import>标签,也可以将一个资源的内容增加到一个JSP中。不同于另外两种包含机制,<c:import>中的url可以来自web容器范围之外。

  用<c:import>和<c:param>标签,可以完成和<jsp:include>和<jsp:param>一样的功能。

 使用<c:import>和<c:param>

include指令和<jsp:include>标准动作的更多相关文章

  1. JSP(include指令与<jsp:include>动作的区别)

    <%@ page language= "java" contentType="text/html;charset=UTF-8" %><html ...

  2. include指令与jsp:include动作标识的区别

    include指令: 文件包含指令include是jsp的另一条指令标识.通过该指令可以在一个jsp页面中包含另一个jsp页面.不过该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到jsp页 ...

  3. include指令和<jsp:include>动作标识区别:--不明觉厉 先收藏

    <jsp:include> 会通过转发的形式,分别编译被包含的文件,所以不怕重命名:而 include 是将多个被包含的原封不动合并后再一起编译一次,所以不可以重命名. ========= ...

  4. jsp 中 include指令 用法, <%@ include file="..."%> 和 <jsp:include page="..." flush="true" />的区别?

    原文链接https://blog.csdn.net/u012187452/article/details/51779052 1. 什么是jsp 文件? 个人理解.  jsp 是一个容器,可以将我们编写 ...

  5. JSP基本语法--包含指令<%@include file="路径"%> <jsp:include page>

    包含指令,真正改变的地方只有具体内容处: 方法1: 在每个jsp页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容 方法2: 将工具栏,头部信息,尾部信息都分成各个独立的文件,使用的时候直接导 ...

  6. <%@ include file=""%>与<jsp:include page=""/>区别

    jsp页面是把include指令元素(<%@ include file=""%>)所指定的页面的实际内容(也就是代码段)加入到引入它的jsp页面中,合成一个文件后被js ...

  7. <%@ include file="">和<jsp:include file="">区别

    <%@include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将jsp的代码加入进来再编译,之后运行. <jsp:include p ...

  8. <%@ include file=""%>与<jsp:include page=""/>区别(转)

    http://www.iteye.com/topic/312500/ 我们都知道在jsp中include有两种形式,分别是Include指令:<%@ include file="&qu ...

  9. JSP之静态include指令、动态Include指令

    (一)使用静态include指令 <%@ page language="java" contentType="text/html; charset=gb2312&q ...

随机推荐

  1. C# winform解决解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题

    public frmMain() { InitializeComponent(); //解决窗体第一次设置为最大化后,点击最大化按钮窗体无法居中问题 int x = Convert.ToInt32(( ...

  2. JS作用域和预编译(转载 学习中。。。)

    JS在页面加载过程中顺序执行.但是分块预编译.执行. JS在执行前会进行类似”预编译”的操作,而且先预声明变量再预定义函数. 此时注意,是声明,不是定义,如:var a = 1; 在预编译中,只是执行 ...

  3. tomcat集群配置

    http://www.finereporthelp.com/help/24/1/3/3.html#a:4.1

  4. iOS高性能图片架构与设计

    版权声明:本文由柯灵杰原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/157 来源:腾云阁 https://www.qclo ...

  5. 【转】 Linux下的多线程编程

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/07/280 ...

  6. sealed(C# 参考)

    sealed 修饰符可以应用于类.实例方法和属性.密封类不能被继承.密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed 修饰符必须始终与 overri ...

  7. Innodb中的事务隔离级别和锁的关系

    前言: 我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式.同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力. ...

  8. uva514(trail)(模拟栈)

    //#define LOCAL #include<cstdio> #include<cstring> #include<cstdlib> #include<s ...

  9. 初学java之触发响应事件举例子

    设置一个触发响应事件? 比如消息框..... package hello; import javax.swing.*; import project.readerListen; import java ...

  10. mysql jdbc连接

    public class JDBCTest { public static void main(String[] args) { String sql = "SELECT * FROM us ...