JSP中动态include和静态include区别
静态include(<%@ include file=""%>):
静态include(静态导入)是指将一个其他文件(一个jsp/html)嵌入到本页面
jsp的include指令是先将文件内容读入,然后把读入的内容和原有的页面融合在一起,这个过程一般是web容器干的,也就是服务器,我们写的jsp页面都是交给服务器转换成servlet(java代码),然后经过servlet处理在浏览器上显示。
服务器将jsp页面转换成servlet(java代码)然后进行编译,这个过程称为翻译阶段。
所以静态include<%@ include file=""%>,在服务器的work目录下只是生成了一个java文件和一个class文件,注意如果是一个java文件那么他们是共用一个request对象,两个页面是不可能定义相同的变量名,验证如下:
定义两个jsp,分别为main.jsp和include.jsp,在main.jsp中使用include指令把include.jsp引入,分别在两个jsp中写上输出request对象的语句测试
可以看到两个输出的对象是一个,分别在两个jsp中定义一个同名的变量i,在发起访问后报错
include执行的时候告诉jsp引擎,翻译的时候,就把include2的内容和include1的内容合并到一个java文件中,所以翻译出来的java只有一个,include指令包含的多个jsp中不允许有同名的变量。
动态include(<jsp:include page="" flush="true"/>):
和静态的区别是分别把两个jsp页面翻译成java文件,进行编译,在最后执行输出的时候才把两个文件合并起来,所以还是上面的代码输出结果如下图:
可以看到是两个request对象(因为翻译后是两个servlet),在两个页面定义相同的变量i,进行访问也不会报错。
JSP中动态include和静态include区别的更多相关文章
- jsp的动态包含和静态包含
jsp的动态包含和静态包含 例如:提取一个公共的页面(top.jsp)到/WEB-INF/jsp/common/目录下 动态包含: 被包含的页面也会独立编译,生成字节码文件,一般包含页面信息频繁变化的 ...
- Atitit 代理CGLIB 动态代理 AspectJ静态代理区别
Atitit 代理CGLIB 动态代理 AspectJ静态代理区别 1.1. AOP 代理主要分为静态代理和动态代理两大类,静态代理以 AspectJ 为代表:而动态代理则以 spring AOP 为 ...
- Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名
Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名 转载自:http://b ...
- Asp.Net中动态页面转静态页面
关于在Asp.Net中动态页面转静态页面的方法网上比较多.结合实际的需求,我在网上找了一些源代码,并作修改.现在把修改后的代码以及说明写一下. 一个是一个页面转换的类,该类通过静态函数Changfil ...
- jsp中的contentType与pageEncoding的区别和作用
jsp中的contentType与pageEncoding的区别和作用 <%@ page contentType="text/html; charset=utf-8" p ...
- JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?
一.静态包含指令<%@include file="fileurl"%> 两个jsp页面的<%@page contentType="text/html:c ...
- JSP中动态INCLUDE与静态INCLUDE的区别
动态INCLUDE 用法: <jsp:include page="included.jsp" flush="true" /> 说明: 它总是会检查所 ...
- JSP中动态include和静态include的区别(简版)
动态的include: 用法:<jsp:include page="1.jsp" flush="true" /> 特点:行为元素,可以带参数:先编译 ...
- JSP中动态INCLUDE与静态INCLUDE的区别?
动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含 ...
随机推荐
- Spring 中@NotNull, @NotEmpty和@NotBlank之间的区别是什么?
简述三者区别 @NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0). @NotEmpty://Ch ...
- JavaScript 使用闭包防止变量污染
javaScript在多人协作时,如果定义过多的全局变量 有可能造成全局变量命名冲突,使用闭包来解决功能对变量的调用 将变量写到一个独立的空间里面 就是闭包里面 var name = "外部 ...
- ubuntu10.04 安装配置tftp服务
tftpd-hpa 是一个功能增强的TFTP服务器.它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统. 1.安装 sudo apt-get install tftpd-hpa t ...
- 6.1 MSI/MSI-X Capability结构
PCIe设备可以使用MSI或者MSI-X报文向处理器提交中断请求,但是对于某个具体的PCIe设备,可能仅支持一种报文.在PCIe设备中含有两个Capability结构,一个是MSI Capabilit ...
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(1)――基本概念
1引言 嵌入式系统定义义为:嵌入到对象体系中的专用计算机系统."嵌入性"."专用性"与"计算机系统"是嵌入式统的三个基本要素,对象系统则是指 ...
- ffmpeg在am335x上的移植
交叉编译工具:arm-linux-gcc 一.先下载一下文件 1. yasm-1.2.0.tar.gz 2. x264-snapshot-20140424-2245.tar.bz2 3. xvidco ...
- 基于am3358的led跑马灯测试
#include <sys/ioctl.h> #include<stdio.h> #include <fcntl.h> #include <sys/types ...
- Query 插件为什么要return this.each()
jQuery.fn.test2= function(){ this.css("background","#ff0");//这里面的this为jquery对象,而 ...
- java将字符串转换为指定的时间格式
*String dateString = "18:31:43"; try { Date date = new SimpleDateFormat("HH:mm ...
- 护航者,腾讯云: 2017年度游戏行业DDoS态势报告—回溯与前瞻
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 前言 自14年开始,全球DDoS攻击持续爆发,攻击峰值不断创记录.2017年,这种依靠超大流量不断冲击服务器和带宽造成业务 ...