JSP中的动态包含和静态包含的区别
本文转载自http://blog.csdn.net/xuxu198899223/article/details/8501044
1. 语法格式
(1)静态包含:<%@ include file="被包含文件" %>;
(2)动态包含:<jsp:include page="被包含文件" />。
2. 包含时间
(1)静态包含:JSP程序被翻译成Servlet之前包含;
(2)动态包含:JSP程序运行时包含。
3. 逻辑性
(1)静态包含:包含文件和被包含文件在逻辑上是统一的;
(2)动态包含:包含文件和被包含文件在逻辑上是独立的。
4.动态包含是先编译文件,在进行包含;静态包含是先包含文件,后统一编译文件。
JSP中有两种包含:
静态包含:<%@ include file="被包含页面"%>
动态包含:<jsp:include page="被包含页面" flush="true">
它们有什么区别,都知道,JSP在WEB服务器中都要转换成一个java文件,java文件再编译成一个class文件。当请求JSP页面的时候,实际上运行的是这个class文件。
从这个方面来说:
静态包含发生在:JSP---->java文件阶段。动态包含发生在:执行class文件阶段。动态加入。
静态包含:只生成一个java文件,动态包含:生成多个class文件。
值得庆幸的是无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。
什么都没例子来的实在:
index.jsp页面:静态和动态包含其他页面。
主要代码:
- 静态包含页面:
- <%@include file="static.jsp" %><br>
- 动态包含页面
- <jsp:include page="dynamic.jsp" flush="true"/>
- 静态包含页面:
- <%@include file="static.jsp" %><br>
- 动态包含页面
- <jsp:include page="dynamic.jsp" flush="true"/>
static.jsp被静态包含的页面。
dynamic被动态包含的页面。
经过编译以后生成的效果:

打开index_jsp.java
可以看到被静态包含的页面中的内容全部包含在了里面。而被动态包含的页面使用了:
- org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response,"dynamic.jsp", out,true);
- org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "dynamic.jsp", out, true);
而被动态包含的页面,生成了一个新的java文件。
再看代码:为什么说动态包含和静态包含的request是相同的,静态被包含页面和包含它的页面共享request是毋庸置疑的,而动态包含通过上面一行代码也就一目了然了。
JSP中的动态包含和静态包含的区别的更多相关文章
- [转]JSP页面的动态包含和静态包含示例及介绍
原文地址:http://www.jb51.net/article/53659.htm 一.静态包含 本文介绍JSP静态包含语句,即使用JSP的include指令来完成的包含操作.JSP中,有两种包含其 ...
- jsp的动态包含和静态包含
jsp的动态包含和静态包含 例如:提取一个公共的页面(top.jsp)到/WEB-INF/jsp/common/目录下 动态包含: 被包含的页面也会独立编译,生成字节码文件,一般包含页面信息频繁变化的 ...
- Linux中的动态库和静态库(.a/.la/.so/.o)
Linux中的动态库和静态库(.a/.la/.so/.o) Linux中的动态库和静态库(.a/.la/.so/.o) C/C++程序编译的过程 .o文件(目标文件) 创建atoi.o 使用atoi. ...
- 路由器中pppoe,动态IP,静态IP的区别
路由器中pppoe,动态IP,静态IP的区别 要把路由器设置得能上网,无非就是设置WAN外网接口连接而已.WAN接口能上网,则连接的电脑就能上网,反之则上不了网.只不过WAN接口往往有pppoe,动态 ...
- asp.net之动态页面和静态页面的区别
asp.net之动态页面和静态页面的区别 当我开始接触web开发的时候,首先学到的是html.css.js这一类网页语言,通过布局可以搭建出一个静态网站,效果也跟我们上网时经常看到的一些网站一样了.于 ...
- 牛客网Java刷题知识点之什么是JSP的3大常用指令、JSP的6大哪些动作、JSP中include指令和include动作有什么区别
不多说,直接上干货! JSP的3大常用指令 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面. 页面指令(Page directive):用来定义JSP页面中特定 ...
- SpringAOP用到了什么代理,以及动态代理与静态代理的区别
spring aop (面向切面)常用于数据库事务中,使用了2种代理. jdk动态代理:对实现了接口的类生成代理对象.要使用jdk动态代理,要求类必须要实现接口. cglib代理:对类生成代理对象. ...
- JSP中的include有哪些?有什么区别?
JSP中的include有哪些?有什么区别? 1.JSP中的include有哪些 (1)<%@include file="" %> (2)<jsp:include ...
- JSP中的编译指令和动作指令的区别
JSP中的编译指令和动作指令的区别 1.编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作 2.编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本, ...
随机推荐
- Java如何检查线程是否停止?
在Java编程中,如何检查线程是否停止? 以下示例演示如何通过使用isAlive()方法来检查线程是否已停止. // from W w w .Y I I b AI.c o M package com. ...
- Eclipse/MyEclipse上配置Spring环境
在MyEclipse上配置Spring环境 myeclipse其实已经集成Spring的开发环境,我们只需在新建的项目上添加spring的配置环境就可以 新建一个java项目 选中创建好的项目之后,在 ...
- Dubbo推刊
dubbo源码阅读:rpc请求处理流程(1) 架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析) 13. Dubbo原理解析-注册中心之Zookeeper协议注册中心 dubbo作为消 ...
- Python——eventlet.backdoor
eventlet.backdoor 是正在运行中的进程内的 Pyhon 交互解释器. 该模块便于检测一个长期运行进程的运行状态,提供了一种可以不阻塞应用正常操作的 Pyhon 交互解释器,从而极大地方 ...
- 【C/C++学院】0904-boost智能指针/boost多线程锁定/哈希库/正則表達式
boost_array_bind_fun_ref Array.cpp #include<boost/array.hpp> #include <iostream> #includ ...
- [poj 1947] Rebuilding Roads 树形DP
Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10653 Accepted: 4884 Des ...
- C# 之HTTP请求get,post带重试参数
public class WebHttp { /// <summary> /// get请求带重试 /// </summary> /// <param name=&quo ...
- iOS:scale image
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); [image drawInRect:CGRectMake(, , newSize.w ...
- 关于Struts2的文件下载
首先先来说下关于文件下载的原理: 服务端为客户端提供了一个下载服务,所以服务端需要一个输出流(把客户请求下载的文件输出),相对于服务端来说,客户端需要下载接收一个文件,所以它需要一个输入流(接收文件) ...
- 【转】maven同时使用maven-surefire-report-plugin和maven-surefire-plugin默认将执行两次test
https://issues.apache.org/jira/browse/SUREFIRE-753 Here the pom.xml snippet how i configured the rep ...