JSP页面的静态包含和动态包含的区别与联系
JSP中有两种包含:
- 静态包含:<%@include file="被包含页面"%>
- 动态包含:<jsp:include page="被包含页面" flush="true">
下面以一个例子来说明如何使用包含
实例:
项目文件树:

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>
1.静态包含:
index.jsp文件中内容:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@ include file="/header.jsp" %> <%@ include file="/content.jsp" %> <%@ include file="/footer.jsp" %>
页面显示结果:

被编译成的java文件:

2.动态包含
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文件数目不同。
3.静态和动态包含的区别与联系
注:下文将包含有其它文件的jsp文件称为主体文件,比如上文中的index.jsp文件.将被包含的文件称为包含文件,比如上文中的header.jsp文件.
- <%@ include file=” ”%>是指令元素。<jsp:include page=” ”/>是行为元素
- 最终编译成java文件的数目不同(从上面的例子可以看出)
- 静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,然后作为一个整体编译。最终编译为一个java文件。
- 动态包含是各个jsp文件分别转换,分别编译。最终编译成多个java文件。
- 执行时间不同
- 静态包含发生在:JSP ---> java文件阶段。
- 动态包含发生在:执行class文件阶段,动态加入。
- 静态包含在两个文件中不能有相同的变量,动态包含允许。
- 由于静态包含相当于将包含文件内容直接复制到主体文件中,如果出现相同的变量,就会出现覆盖等问题,导致文件出错。而动态包含相当于调用不同的jsp,变量所在的空间不同,自然不会出现覆盖等现象。
- 无论是动态包含还是静态包含,其request对象都是相同的。
- 静态包含最终编译成一个java文件,有一个request对象很好理解。而动态包含最终编译成多个jsp文件,为何会使用一个request对象呢?其实这些jsp组合的过程是一个请求转发的过程,自然也使用同一个request对象了。
4.静态包含和动态包含的使用
简单总结一下,就一句话:被包含的页面是静态页面就用静态包含,是动态页面就用动态包含.(当然,不是很绝对,但是这样用没有错.)
JSP页面的静态包含和动态包含的区别与联系的更多相关文章
- JSP页面的静态包含和动态包含
JSP中有两种包含:静态包含:<%@include file="被包含页面"%>和动态包含:<jsp:include page="被包含页面" ...
- JSP页面静态包含和动态包含的区别与联系
---恢复内容开始--- JSP页面静态包含和动态包含的区别与联系: 1.<%@ include file=" " %> 是指令元素,<jsp:include p ...
- 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的区别
jsp中静态include和动态include的区别 动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp&quo ...
- jsp-静态包含和动态包含的区别
include指令是静态包含.静态包含的意思就是:把文件的代码内容都包含进来,再编译! include指令是静态包含,include行为是动态包含.其实include行为就是封装了request.ge ...
- JSP静态include和动态include的区别
静态include是指令元素.include指令的语法格式:<%@ include file="filename" %>.include指令的作用是在JSP页面中静态包 ...
随机推荐
- MD5 加密原理(转)
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Secur ...
- Jquery-基础知识点
jquery 包含的功能 1.HTML元素选取.操作 2.CSS操作 3.HTML事件函数 4.Javascript特效和动画 5.HTML DOM遍历和修改 6.AJAX 7. Untilities ...
- V$ASM_OPERATION
- POJ3370&HDU1808 Halloween treats【鸽巢原理】
题目链接: id=3370">http://poj.org/problem?id=3370 http://acm.hdu.edu.cn/showproblem.php?pid=1808 ...
- 11.怎样自学Struts2之Struts2验证[视频]
11.怎样自学Struts2之Struts2验证[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: http://pan. ...
- CodedUI自己主动化測试及脱离VS独立执行
在VS中可创建"编码的UI測试".可录制软件操作,再回放,最后还能够脱离VS独立执行. 在VS中执行測试 创建项目codeuitest,控件布局.例如以下图: 在button单击事 ...
- js运算符单竖杠“|”与“||”的用法和作用介绍
在js开发应用中我们通常会碰到“|”与“||”了,那么在运算中“|”与“||”是什么意思呢? 在js整数操作的时候,相当于去除小数点,parseInt.在正数的时候相当于Math.floor(), ...
- Pure functions
In the next few sections, we’ll write two versions of a function called add_time, which calculates t ...
- 19.允许重复的unordered_map
#include <string> #include <iostream> //查询性能最高 //允许重复的,hash_map #include <unordered_m ...
- IE11 补丁 KB2929437[已过期]
2014年4月 请更新此补丁 KB2929437 开发人员工具有重要更新 DOM 面板右侧新增 "更改"面板,用于记录调试时修改的 CSS Rules: JS 调试面板,新增 so ...