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

一、静态包含指令<%@include file=“fileurl”%>

  1. 两个jsp页面的<%@page contentType=“text/html;charset=gbk”%>应该保持一致
  2. 不能通过fileurl向被包含的jsp页面传递参数,因为此静态包含是发生在jsp页面转换为servlet的转换期间,此时的参数是服务器端设置的死的参数,完全没有经过客户端,这种参数是没有意义的,如<%@include file=“fileurl?user=admin”%>,而且此时会报错。
  3. 包含的jsp页面与被包含的jsp页面共用一个request内置对象。
  4. 比如说在客户端访问包含页面时地址栏后面直接加上参数后传递,这种形式的传参是客户端送来的,两个页面都能够访问此参数。我们可以通过这两个页面合成的servlet中可以看到有传递的参数成为servlet的成员变量。
  5. 包含的jsp页面与被包含的jsp页面最好没有重复的html标签。否则会发生覆盖现象。

二、动态包含<jsp :include page=“a.jsp”/>与静态包含<%@include file=“fileurl”%>的区别

  1. 动态包含用的元素是page,而且有两种形式。静态包含用的是file,只有一种形式。
  2. 生成的文件不同,静态的包含是将两个jsp文件二合一,生成一个以包含页面命名的servlet和class文件,动态包含的两个jsp文件各自生成自己的servlet和class文件。
  3. 传参方式一:<jsp:include page=“a.jsp?param=123”/>时被包含的jsp页面是可以访问该参数的。
  4. 传参方式二:

<jsp:include page=“a.jsp”>

<jsp:param name=“” value=“”>

<jsp:param name=“” value=“”>

</ jsp:include >

5. 在客户端访问包含页面时地址栏后面直接加上参数后传递,这种形式的传参是客户端送来的,但是这两个页面的request对象不是同一个,因为3中已经说了包含的页面可以向被包含的页面传递参数,所以被包含的request对象含的参数个数应该大于等于包含页面的参数个数的。所以它们各有各的request对象。而且被包含的jsp页面可以访问传到包含页面的参数。

6. 动态包含只有在执行到它的时候才加载,所以它才叫动态包含。

另一种简答说法:

  1. 动态INCLUDE用jsp:include动作实现<jsp:include page = included.jsp flush = "true">它总会检查所含文件中的变化,适用于动态页面并且可以带参数。
  2. 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@include file=included.html%>
时间: 2024-10-27 12:59:42

JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?的相关文章

ios 开发中 动态库 与静态库的区别

使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用有如下好处: 1使用动态库,可以将最终可执行文件体积缩小 2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源 3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的. 从1可以得出,将整个应用程序分模块,团队合作,进行分工,影响比较小. 等其他好处, 从2可以看出,其实动态库应该叫共享库,那么从这个意义上来说,苹果禁止iOS开

使用动态库和静态库的区别

做为一个 ios 开发者或多或少的应该计算机的一些知识, mac 系统它是苹果公司对linux系统进一步优化产生的. 在做项目结束上传打包的时候出现了问题(我使用的 leadCloud 三方类库),不让我上传 AVOSLeadCloud 这个库,我就取搜索这个问题是什么原因,原来是静态库动态库的问题(当时我使用的是动态库).好吧,不让我传,我就去改静态库不就好了,改掉以后,上传成功! 在linux中就存在动态库和静态库之别! 好了,言归正传,那我们就来了解一下这个动态库和静态库有什么区别呢? 首

JSP中动态INCLUDE与静态INCLUDE的区别

动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数. 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %> 下面非常详细地解析了有关JSP动态INCLUDE和

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://blog.chinaunix.net/uid-23069658-id-3142046.html 今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用ELF格

路由器中pppoe,动态IP,静态IP的区别

路由器中pppoe,动态IP,静态IP的区别 要把路由器设置得能上网,无非就是设置WAN外网接口连接而已.WAN接口能上网,则连接的电脑就能上网,反之则上不了网.只不过WAN接口往往有pppoe,动态IP,静态IP三种连接方式,一般的用户搞不清楚有什么区别.且听我慢慢道来…… 第一种:PPPOE模式可以说是最常用的了,无论是从电信联通那里拉来的ADSL宽带,还是接小区的网络,用的都是PPPOE协议.因为他们都会给你一个宽带账号和密码,输入账号密码连接就可以上网了.这就要用PPPOE模式,要不然都

动态库与静态库的区别

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库和动态库的区别 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了.当 然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译. 2. 动态函数库 这类库的名字一般是libxxx.so;相对于静态

动态网页和静态网页的区别

一.从功能方面来说动态网站与静态网站的区别 1. 动态网站可以实现静态网站所实现不了的功能,比方说:聊天室.论坛.音乐播放.浏览器.搜索等:而静态的网站则实现不了.2. 静态网站,如用Frontpage或Dreamweaver开发出来的网站,其源代码是完全公开的,任何浏览者都可以非常轻松地得到其源代码,也就是说,自己设计出来的东西很容易被别人盗用.动态网站,如:ASP开发出来的网站,虽然浏览者也可以看到其源代码,但是那已经是转换过以后的代码,想盗用源代码那是不可能的,因为它的源代码已经放在服务器

动态链接和静态链接的区别

动态链接和静态链接的区别 一.分别编译与链接(Linking) 大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译.在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”.(想想这样做有什么好处?) 在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成).lib文件(静态链接的函数库).dll文件(动态链接的函数库)等. 静态链接方式:在程序执行之前完成所有的组装工作,生成一个可执行的目标文件(EXE文件). 动态链

oracle监听器动态注册于静态注册的区别

即静态注册,listener不知道实例的状态,只有在进程通过其连接数据库时才能知道,如果你想使用远程管理数据库就使用静态监听动态注册:listener实时的都知道实例的状态,数据库在关闭的时候会动态的从listener中注销,所以远程管理数据库的启动和停止就不行了. 4,如何判断是静态注册还是动态注册(1) 可以通过配置文件判断 动态注册 SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(PROGRAM = extproc)(SID_NAME = PLSExtP

动态内存与静态内存的区别

1. 静态内存 静态内存是指在程序开始运行时由编译器分配的内存,它的分配是在程序开始编译时完成的,不占用CPU资源. 程序中的各种变量,在编译时系统已经为其分配了所需的内存空间,当该变量在作用域内使用完毕时,系统会 自动释放所占用的内存空间. 变量的分配与释放,都无须程序员自行考虑. eg: 基本类型,数组 2. 动态内存 用户无法确定空间大小,或者空间太大,栈上无法分配时,会采用动态内存分配. 3. 区别 a) 静态内存分配在编译时完成,不占用CPU资源; 动态内存分配在运行时,分配与释放都占