jsp:include和%@include file=%的区别(简单了解)
<jsp:include>和<%@include file=""%>的区别(简单了解)
简单了解
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=%的区别(简单了解)相关推荐
- jsp中动态include与静态include的区别
JSP中动态INCLUDE与静态INCLUDE的区别 动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" f ...
- 5.jsp中动态include与静态include的区别
动态include在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示:静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的inclu ...
- 每日一题(13)—— #includefile.h 与 #include “file”的区别
#include<file.h> 与 #include "file"的区别? #include<file.h>:编译器从标准库路径开始搜索file.h: # ...
- jsp页面中include的两种使用方法
jsp页面中include的两种使用方法 include有两种用法 <%@ include file="文件的绝对路径或者相对路径"%> <jsp:include ...
- require与include+php,PHP中include与require有什么区别
PHP中include与require有什么区别 发布时间:2021-01-13 15:24:31 来源:亿速云 阅读:81 作者:Leah PHP中include与require有什么区别?相信很多 ...
- include指令与动作的区别【贴心,简洁】
虽然include和include动作都能够包含一个文件,但他们之间有很大的区别,具体如下: include动作要引入的资源和当前JSP页面是两个彼此独立的执行实体.而include指令只能引入遵循J ...
- php文件通常包含和一些,php函数导入与文件包含:include() 和 require() 语句的区别...
在PHP脚本中想使用文件中定义的函数,就需要使用include().include_once().require()和 require_once() 中的一个函数,将函数库文件载入脚本程序中.上一章节 ...
- PHP中include与require的用法区别
在PHP变成中,include()与require()的功能相同,include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是 ...
- C语言中,#include的用法:#include 和 #include区别
C语言中,#include的用法:#include "" 和 #include<>区别 采用 " ":依次搜索当前目录.包括/I编译开关的路 ...
- php require的用法,PHP中include与require使用方法区别详解
在PHP变成中,include()与require()的功能相同,include(include_once) 与 require(require_once)都是把把包含的文件代码读入到指定位置来,但是 ...
最新文章
- springboot设置文件上传大小(tomcat默认1M)
- Linux练习(显示环境变量)
- python_104_面向对象总结
- matlab 2009a使用教程,实验一 安装MATLAB R2009a软件及其简单操作
- PHP Extension Makefile 製作
- python的重点和难点_Python - Python的基础知识结构,学习方法、难点和重点
- 网络基石 —— 双绞线、水晶头与 MIC
- 利用classloader同一个项目中加载另一个同名的类_你知道 Java 类是如何被加载的吗?...
- java编写九宫格拼图游戏_jquery 九宫格拼图游戏源码
- stm32+rx8025
- 数字逻辑课程设计--数字钟的设计(quartus ii)(内附源代码和实习报告以及6篇实习日志)
- U3D PDF 旋转中心设置方法
- 全方位解读数字转型在企业产业变革中发挥的作用!
- 【Python人工智能】Python全栈体系(二十)
- Mac 移动硬盘无法装载
- leetcode 题解 904.水果成篮(Typescript)
- html状态中的302代码含义,网站状态码301与302的作用与区别
- matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计
- arcgis打开mdb数据库_科学网—Arcgis .mxd 文件打开出错+Runtime Error+mdb数据打不开 - 陈桂华的博文...
- comsol三维随机裂纹 裂缝模型 随机纤维建模
热门文章
- Python实现中文转化为对应的拼音以及拼音转化为相应的中文
- Java并发工具类之CountDownLatch
- 中rsa非对称加密_HTTP的数据传输中,对称加密和非对称加密的区别是什么?
- dlib android 识别时间,android dlib调用
- java vector pair_STL: list ,set ,pair.map的使用
- c make干什么用得_CMake简单使用
- java IDEA 修改jar包中某个文件 并生成新jar包
- git 远程删除分支之后 本地分支更新后还在
- web访问linux创建目录权限设置,centos7下新建一个用户并限制访问目录
- JDBC01 mysql和navicat的安装