利用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. vitamio框架

    import io.vov.vitamio.LibsChecker; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.MediaPla ...

  2. 5.2 i++

    答案:第一段21,第二段12 PS:注意运算符的优先级. 答案:A

  3. Linux 下没有 my.cnf 文件的解决方式,完全是我自己整的,好多教程都是瞎扯的 (zhuan)

    http://blog.csdn.net/jspping/article/details/40400691?utm_source=tuicool&utm_medium=referral *** ...

  4. datagrid实现行的上移和下移

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. Java.util.concurrent包学习(一) BlockingQueue接口

    JDK1.7 BlockingQueue<E>接口 (extends Queue<E>) 所有父接口:Collection<E>,Iterable<E> ...

  6. vim 空格和换行的删除和替换

      %s/\s//g %s/\r//g %s/\n//g   把一个很长的一行按空格分为多行 :%s/ +/\r/g简单解释一下:%s :在整个文件范围查找替换/ :分隔符+ :匹配空格,其中“ ”表 ...

  7. MySQL之聚合

    EP:巧妙地过滤掉重复的日期 example:使用bit_or() bit_count()巧妙地过滤掉重复的日期: CREATE TABLE t1 ( year YEAR(4), month INT( ...

  8. 任务调度quartz

    http://www.cnblogs.com/cnjava/archive/2013/02/28/2937291.html

  9. listview定位到上次显示的位置

    整体思路:滑动lictview时,记录listview的位置,定位时定位到该位置. 1.添加全局变量 private int scrolledX = 0; private int scrolledY ...

  10. iOS 轻量级的数据库leveldb

    轻量级的数据库leveldb https://github.com/google/leveldb 一:在iOS下编译leveldb 终端: 1: git clone https://github.co ...