简单了解

include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改。由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译。因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素<jsp:include>。

include指令

include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改

语法:<%@ include file="top.jsp" %>

include动作

jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的 结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面, 将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。

语法: <jsp:include page="top.jsp" flush="true"/>

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

1、在执行时间上

<%@ include file=”relativeURI”%>                   是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” />  在请求处理阶段执行.

2、引入内容的不同

<%@ include file=”relativeURI”%>    引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.

<jsp:include page=”relativeURI” flush=”true” />  引入执行页面或servlet所生成的应答文本.

3、在编译上

jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含

@ include是先把文件包含就来,然后统一编译 先包含,后编译

图解区别

使用include动作还是include指令好呢?

  使用include指令,如果被包含的文件发生改变,那么,用到它的所有Jsp页面都需要更新。

  仅当include动作不能满足要求时,我们才应该使用include指令。

  有 些开发人员认为include指令生成的代码执行起来比使用include动作的代码更快。尽管原则上由可能的确如此,但性能上的差异很小,以致难以测 量,同时,include动作在维护上的优势十分巨大,当两种方法都可以使用时,include动作几乎肯定是首选的方法。

  对于文件包含,应该尽可能地使用include动作。仅在所包含的文件中定义了主页面要用到的字段或方法,或所包含的文件设置了主页面的响应报头时,才应该使用include指令。

为什么人们还要使用它呢?

因为include指令更为强大。include指令允许所包含的文件中含有影响主页面的Jsp代码,比如响应报头的设置和字段、方法的定义

总结:

<jsp:include page="">  父页面和包含进来的页面单独编译,单独翻译成servlet后,在前台拼成一个HTML页面。

<%@include file=""%> 父页面和包含进来的页面,代码合并后,才一起翻译成servlet,反馈到前台,形成一个HTML页面。

<jsp:include>和<%@include file=""%>的区别(简单了解)的更多相关文章

  1. [转]<jsp:include>和<%@include%>的区别

    首先,转发自yangbobo1992的 <jsp:include>和<%@include%>的区别 这个是我见过写的最好的之一 <%@include%>和<j ...

  2. <%@page include%>、<%@include%>、<jsp:include>三者之间的本质区别

    <%@page include%>.<%@include%>.<jsp:include>三者之间的本质区别 先从它的几个内置对象说起. application和se ...

  3. jsp 2种include标签的区别

    众所周知,jsp中有2种标签用于包含其他jsp或者文件 1.include指令,其实是java代码 <%@ include file="xxx.jsp"%> 2.jsp ...

  4. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  5. JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?

    一.静态包含指令<%@include file="fileurl"%> 两个jsp页面的<%@page contentType="text/html:c ...

  6. JSP中的include有哪些?有什么区别?

    JSP中的include有哪些?有什么区别? 1.JSP中的include有哪些 (1)<%@include file="" %> (2)<jsp:include ...

  7. jsp中静态include和动态include的区别

    jsp中静态include和动态include的区别 动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp&quo ...

  8. jsp 静态引入<%@ include %> 动态引入<jsp:include> 区别

    1. 首先先介绍下,jsp机制:  servlet容器,先将jsp转化成servlet,然后编译成.class文件,放置容器缓冲区[tomcat的work目录下]. 每次调用jsp时,服务器会读取编译 ...

  9. JSP指令include和JSP动作元素include的区别

    include指令用于在JSP页面静态的包含一个文件,该文件可以是JSP页面.HTML页面.文本文件或者一段java代码.使用include指令的JSP页面在转换时,JSP容器会在其中插入所包含文件的 ...

随机推荐

  1. 第十七章:使用media插件来播放声音

    前面已经讲过如何基于push notification自定义sound,但是还是存在几个问题: IOS app在前台运行的时候,如何播放sound?因为这个时候push notification是不起 ...

  2. Ant利用第三方的task

    转自 http://blog.sina.com.cn/s/blog_3d21e545010006s9.html 一.如何使用第三方任务   Ant可以使用第三方任务,在使用第三方任务之前,需告知Ant ...

  3. nginx反向代理使用网址速度变慢

    最近公司网址加载静态文件的速度总是跟不上于是试着用带端口的ip来访问, 发现速度快不少于是将nginx的代理修改为ip的如: location / { proxy_pass http://localh ...

  4. 2017年11月4日 vs类和结构的区别&哈希表&队列集合&栈集合&函数

    类和结构的区别 类: 类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存 类有构造和析构函数 类可以继承和被继承 结构: 结构是值类型在栈上分配(虽然栈的访问速度比 ...

  5. SpringMVC:系统认识一下maven

    网上看了很多springMVC helloworld的教程,非常不满意:首先,maven构建的就很少,再者,绝大部分都是断章取义,让人不明就里.其中有几篇讲的好的,我摘录了一些,自己试着构建了一下项目 ...

  6. hibernate的查询 (比较get 与load)

    hibernate的查询的比较hibernate的查询有很多,Query,find,Criteria,get,load query使用hsql语句,可以设置参数是常用的一种方式 criteria的方式 ...

  7. Java设计模式—责任链模式

    责任链模式的定义: 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止. 责任链模式的重点是在"链& ...

  8. 关于 “VMware Workstation 不可恢复错误- (vcpu-0)”

    重装系统后第一次在 VMware Workstation 上创建虚拟机,结果出现了 VMware Workstation 不可恢复错误: (vcpu-0) 错误. 于是我们遵循它给出的提示,查看一下日 ...

  9. Linux漏洞分析入门笔记-Off-By-One(栈)

    ubuntu-16.04.5(X86) IDA7.0 0x00.漏洞描述 1.什么是off by one?又称1字节溢出. 源字符串长度等于目标缓冲区长度时,将源字符串复制到目标缓冲区可能会导致off ...

  10. Latex 中cite的使用

    (一).设置上标显示的命令 可以在引言区增加类似如下的重定义命令:   \newcommand{\upcitep}[1]{\textsuperscript{\textsuperscript{\cite ...