JSP页面的静态包含和动态包含
实例:
项目文件树:
header.jsp文件中内容:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<h1>This is header</</h1>
content.jsp文件中内容:
<table border="1">
<tr>
<td>col1</td>
<td>col2</td>
</tr>
<tr>
<td>col1</td>
<td>col2</td>
</tr>
</table>
footer.jsp文件中内容:
<hr>
copyright: 1999-2010
</body>
</html>
静态包含:
index.jsp文件中内容:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ include file="/header.jsp" %>
<%@ include file="/content.jsp" %>
<%@ include file="/footer.jsp" %>
页面显示结果:
被编译成的java文件:
动态包含
index.jsp文件中内容:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<jsp:include page="/header.jsp"></jsp:include>
<jsp:include page="/content.jsp"></jsp:include>
<jsp:include page="/footer.jsp"></jsp:include>
页面显示结果:
被编译成的java文件:
说明
这个例子,使用静态包含和动态包含最终的执行结果相同,但是实现过程不同,很明显编译成的java文件数目不同。
静态和动态包含的区别与联系
注:下文将包含有其它文件的jsp文件称为主体文件,比如上文中的index.jsp文件。将被包含的文件称为包含文件,比如上文中的header.jsp文件。
- <%@ include file=” ”%>是指令元素。<jsp:include page=” ”/>是行为元素
- 最终编译成java文件的数目不同。(从上面的例子可以看出)
静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,然后作为一个整体编译。最终编译为一个java文件。
动态包含是各个jsp文件分别转换,分别编译。最终编程成多个java文件。
- 执行时间不同
静态包含发生在:JSP---->java文件阶段。
动态包含发生在:执行class文件阶段。动态加入。
- 静态包含在两个文件中不能有相同的变量,动态包含允许。
由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,变量所在的空间不同,自然不会出现覆盖等现象。
- 无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。
静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程是一个请求转发的过程,自然也使用同一个request对象了。
静态包含和动态包含的使用
简单总结一下,就一句话:被包含的页面是静态页面就用静态包含,是动态页面就用动态包含。(当然,不是很绝对,但是这样用没有错。)
JSP页面的静态包含和动态包含的更多相关文章
- JSP页面静态包含和动态包含的区别与联系
---恢复内容开始--- JSP页面静态包含和动态包含的区别与联系: 1.<%@ include file=" " %> 是指令元素,<jsp:include p ...
- JSP页面的静态包含和动态包含的区别与联系
JSP中有两种包含: 静态包含:<%@include file="被包含页面"%> 动态包含:<jsp:include page="被包含页面" ...
- Jsp静态包含和动态包含的区别
1 <%@include file="xxx.jsp"%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而<jsp:include ...
- JSP静态包含和动态包含的区别和联系
JSP页面的静态包含和动态包含 JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含: <jsp:include page= ...
- JSP静态包含和动态包含
JSP中有两种包含: 静态包含:<%@include file="被包含页面"%>: 动态包含:<jsp:include page="被包含页面&quo ...
- java web jsp原理图 ,静态包含,动态包含,out与response.getWrite()
jsp原理图 ,静态包含,动态包含,out与response.getWrite()
- jsp-静态包含和动态包含的区别
include指令是静态包含.静态包含的意思就是:把文件的代码内容都包含进来,再编译! include指令是静态包含,include行为是动态包含.其实include行为就是封装了request.ge ...
- java Web jsp页面的静态包含和动态包含
现在有头 体 尾 三个jsp页面 top.jsp <%@ page language="java" contentType="text/html; charset= ...
- 关于JSP页面的静态包含和动态包含
JSP中有两种包含:静态包含:<%@include file="被包含页面"%> 和 动态包含:<jsp:include page="被包含页面&quo ...
随机推荐
- QT Creator 快速入门教程 读书笔记(三)
一 信号和槽 GUI 程序除了要绘制控件,还要响应系统和用户事件,例如重绘.绘制完成.点击鼠标.敲击键盘等.当事件发生时,UI 会产生相应的变化,让用户直观地看到. 大部分编程(例如Win SDK ...
- Oracle SQL 语言分类
Oracle SQL语句分类 2008-06-17 11:15:25 分类: Linux * 2008/06/17 星期二*蒙昭良*环境:WindowsXP + Oracle10gR2*Oracl ...
- flume日志采集框架使用
flume日志采集框架使用 本次学习使用的全部过程均不在集群上,均在本机环境,供学习参考 先决条件: flume-ng-1.6.0-cdh5.8.3.tar 去cloudrea下载flume框架,笔 ...
- Tcl与Design Compiler (十一)——其他的时序约束选项(二)
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 前面介绍的设计都不算很复杂,都是使用时钟的默认行为 ...
- iOS 给UITextView加一个placeholder
苹果并没有为UITextView提供placeholder功能.我们可以通过两种办法实现. 方法一: 思路:设置默认显示的文字,颜色设置为灰色.代理方法监听textView点击. 缺点:如果点击到文字 ...
- vim中文帮助文档安装
vim自带的帮助手册是英文的, 对平时编程的人来说没有多大阅读困难,在何况还有"星级译王"呢, 但是我猜和我一样连英语四级都愁的大有人,可偏偏就有一帮好心人人将其翻译成了中文, 可 ...
- C#对文件操作(基本的读写以及压缩和解压)
主要是针对单个文件进行读写操作和压缩操作:用到的主要C#类有FileStream.FileInfo.StreamWrite.StreamRead.GZipStream. 字符数组和字节数组的转换: ] ...
- 【Spark2.0源码学习】-1.概述
Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续 ...
- Linux-粘滞位的使用
粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标.最常见的用法在目录上设置粘滞位, 也只能针对⽬录设置,对于⽂件⽆效.则设置了粘滞位后,只有目录内文件的所有者或者root才可 ...
- SourceTree 无法查看组织仓库
error log: Pushing to remote: Repository not found. 在使用SourceTree进行版本控制,代替git命令行,而且作为免费 跨平台 功能完备的git ...