jsp里面include的静态导入和动态导入的区别
静态导入就是将被导入页面完全融入到导入的页面中;而动态导入只是在servlet里面插入了include方法,导入的这是被导入页面的body标签里面的内容
1、什么是静态导入?
静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来。
include的静态导入指令使用语法:
静态导入使用范例include1.jsp:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>静态include范例</title>
</head>
<body>
<!--使用include编译指定导入页面-->
<%@include file="error.jsp"%>
</body>
</html>
其中error.jsp是一个简单的错误处理页面,代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>错误提示页</title>
</head>
<body>
这是一个错误处理页面</br>
</body>
</html>
在tomcat下运行该静态include范例后,查看生成的servlet类可看到如下代码段
(查看方式:windows下,找到tomcat安装目录下的work文件夹,进入Catalina文件夹下的localhost文件夹,找到当前项目所在的文件夹,找到org目录,进入其下的apache目录下的jsp文件夹,即可看到一个include1_jsp.java文件,这就是该include1.jsp对应生成的servlet类。ps:我是把这个测试页面放在webDemo下的,所以我的目录是\apache-tomcat-7.0.47\work\Catalina\localhost\webDemo\org\apache\jsp)
从方框中即可看出静态导入是:包含页面在编译时将完全包含被包含页面的代码。需要指出的是,静态导入还会将被包含页面的编译指令也包含进来,如果两个页面的编译指令有冲突,那么页面就会出错。
2、什么是动态导入
动态导入是不会导入include页面的编译指令的,而是仅仅将被导入页面的body内容插入本页面。
动态导入的语法格式:
或者
<jsp:param name="parameterName" value="parameterValue"/>
</jsp:include>
flush属性用语指定输出缓存是否转移到被导入文件中。如果指定为true,则包含在被导入文件中,如果指定为false,则包含在原文件中,对于JSP1.1旧版本,只能设置为false。
对于第二种语法格式,则可在被导入页面中加入额外的请求参数。
动态导入范例:
我们将上面的include1.jsp代码静态导入改为动态导入
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>静态include范例</title>
</head>
<body>
<!--使用include编译指定导入页面-->
<jsp:include page="error.jsp" />
</body>
</html>
编译后查看生成的servlet代码,可以看到如下段:
红色方框中代码显示出,动态导入只是使用了一个include方法来插入目标页面的内容,而不是将目标页面完全融入到本页面中。
归纳起来,静态导入和动态导入有如下三点区别:
1、静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
2、静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
3、动态导入还可以增加额外的参数。即如下代码方式:
<jsp:param name="parameterName" value="parameterValue"/>
</jsp:include>
jsp里面include的静态导入和动态导入的区别的更多相关文章
- Jsp的include指令静态导入和动态导入的区别
1.什么是静态导入? 静态导入指的是,将一个外部文件嵌入到当前JSP文件中,同时解析这个页面的JSP语句,它会把目标页面的其他编译指令也包含进来. include的静态导入指令使用语法: <%@ ...
- JSP-讲解(生成java类、静态导入与动态导入)
一.JSP技术简介 JSP是Java Server Page的缩写,它是Servlet的扩展,它的作用是简化网站的创建和维护. JSP是HTML代码与Java代码的混合体. JSP文件通常以JSP或J ...
- 一个jsp页面引入另一个jsp页面的三种方式 及静态引入和动态引入的区别
转载下, 转载自:http://blog.csdn.net/fn_2015/article/details/70311495 1.第一种:jstl import <c:import url=& ...
- JSP页面静态包含和动态包含的区别与联系
---恢复内容开始--- JSP页面静态包含和动态包含的区别与联系: 1.<%@ include file=" " %> 是指令元素,<jsp:include p ...
- 静态库和动态库的区别和win平台和linux平台代码实现
静态库和动态库的区别 什么是库 库是写好的,现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说,库是一种可 ...
- iOS中的静态库与动态库,区别、制作和使用
如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库: ...
- iOS 中的静态库与动态库,区别、制作和使用
如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库: ...
- VS中Debug和Realease、及静态库和动态库的区别整理(转)
原文出自:http://www.cnblogs.com/chensu/p/5632486.html 一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不 ...
- VS中Debug和Realease、及静态库和动态库的区别整理
一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...
随机推荐
- Codeforces 1194B. Yet Another Crosses Problem
传送门 直接枚举填满哪一行,然后看看这一行填满以后哪一列最小 这个预处理一下 $cnt[i]$ 表示初始时第 $i$ 列有几个位置填满就可以做到 $O(m)$ 对于所有情况取个 $min$ 就是答案, ...
- 实现Promise类
基本使用: let promise = new Promise((resolve, reject) => { // do something if (true) { resolve('succe ...
- scrapyd使用教程
1. 安装服务器: pip install scrapyd 启动: scrapyd 访问:127.0.0.1:6800 2. 安装客户端 pip install scrapyd-client 3. 进 ...
- Django框架——进阶之AJAX
<script>$("#b1").on("click", function () { // 点击 id是b1的按钮要做的事儿 var i1 = $( ...
- Java定义栈结构,实现入栈、出栈操作
package com.example.demo; import java.util.ArrayList; public class Stack { ArrayList<Object> l ...
- Delphi 过程
- 第二篇.2、python基础之字符编码
一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...
- Ubuntu中用bitbake core-image-minimal时,出错:from bb import data
问题描述: 在准备ARM交叉编译环境时,执行完命令: DISTRO=fsl-imx-x11 MACHINE=imx6qsabresd source fsl-setup-release.sh -b bu ...
- Rasa学习记录 01
目录 Rasa的安装和简单的测试 什么是Rasa: 安装Rasa: 测试自带的数据 查看项目里的文件内容 举一反三(自己的第一个机器人) Rasa的安装和简单的测试 怪雨是新手,刚刚接触Rasa,以下 ...
- deep_learning_Function_matpotlib_scatter()函数
plt.scatter()函数用于生成一个scatter散点图. matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, ...