include指令<%include file=""%>,这种方式的引入属于静态导入,include行为<jsp:include>,这种方式的导入属于动态的导入,这里涉及到一个jsp的原理上的问题。现在就先回顾一下:
当我在地址栏中输入一个jsp的地址的时候,点击回车,会提交一个请求给我的web容器(如:tomcat,resin)等,这个容器会把这个以jsp结尾的请求对应到一个jsp引擎(其实也是一个servlet)来处理,这个servlet一定会去先把要回应请求的jsp转义成为servlet(此时 include指令被解释执行),然后,把这个servlet编译为class文件,由虚拟机解释执行,处理用户的请求(此时include行为执行),然后再生成响应。
所以说,静态导入是在转译时发生的,是代码级的导入,这个指令的作用就是让jsp引擎去按照这个指令去做一些事情。而include动作是在请求处理阶段发生的,也就是说,include动作会产生两个servlet,两者之间可以传参数,引入的是处理后的结果。
现在知道了原理,那么在编程的时候到底会产生什么样的效果呢?
举个例子就知道了:
比如说我有一个根据股票的行情随时改变的一个servlet(这个servlet会去从某个数据源取得变化的数据),这个servlet需要显示到我的主页的一个角上,每10秒钟更新一次信息,这是很正常的需求。大家都知道静态导入的优点是速度相对于动态导入的速度快。如果我用静态导入的方法,导入这个 servlet的话,会生成一个class文件,这个class文件,当我第二次请求的时候,由于是静态导入,jsp引擎不会去检查我的导入文件的最新时间,而是直接用已经生成的class响应请求。而动态导入的时候,每次去请求的时候,都会去比较导入文件的最新更新的时间,如果这个文件修改过,则会重新生成新的class文件,再去响应请求。也就是说,动态导入之所以速度上要慢,是由于要多做一个判断,对比导入文件的最新时间。我一直只这么认为的,结果今天做了个试验,推盘了我的结论,其实无论动态导入还是静态导入都会去检查生的jsp的更新时间与生成的servlet更新时间的早晚,根据比较结果来决定是否重新生成。而动态导入和静态导入的本质区别就在于,动态导入之所以叫做动态是由于它的参数是动态传递的,这样就可以使程序更加的灵活,而且它的参数本身还可以是动态的也就是说参数可以是脚本。而静态的则没有这项特权。而且,动态导入可以是一个.do的请求,而静态导入不能够。
因此,得出结论,静态导入适合导入不会变化的资源,例如一个html文件,而动态导入适合导入一个时常变化的资源,如servelt和jsp。
分享到:
相关推荐
jsp:include page=” ” flush=”true”/> 前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的问题。下面一起来看看吧。 通常当应用程序中所有的...
JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...
在JavaServer Pages (JSP) 技术中,`<jsp:include>` 和 `<%@ include %>` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...
在JavaServer Pages (JSP) 技术中,存在两种包含关系:`<jsp:include>` 动作和 `jsp:include` 指令。它们都是用来将一个页面的内容插入到另一个页面中的,但它们的工作方式和适用场景有所不同。 **1. `<jsp:include...
2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX
### JSP基础语法-include指令详解 在Java Server Pages(JSP)技术中,`include`指令是一项重要的功能,它允许开发者将一个JSP页面的内容嵌入到另一个JSP页面中,从而实现代码的重用和模块化。通过`include`指令,...
在JSP中,`include`指令用于将一个或多个页面的内容合并到主页面中,以实现页面的模块化。这有助于提高代码复用性并简化维护。`include`指令有两种形式:静态导入和动态导入,它们在处理和执行时有所不同。 1. **...
使用include指令可以将常用的代码段或组件包含到多个JSP页面中,从而实现代码的重用,提高开发效率和维护性。 include指令的基本语法为: ```jsp <%@ include file="URL" %> ``` 在这里,`file`属性指定了要被...
在Java Web开发中,`jsp:include`和`<jsp:include>`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...
JSP 中的 Include 有两种用法,分别是 `<%@ include file=” ”%>` 和 `<jsp:include page=” ” flush=”true”/>`。这两种用法都可以用于引入其他 JSP 文件,但是它们之间存在着一些关键的区别。 首先,让我们...
JSP中的include指令有两种方式:静态导入和动态导入。了解它们之间的区别,对于开发高效且易于维护的Web应用至关重要。 首先,我们要了解什么是静态导入。在JSP中,静态导入是通过指令%@include file=...
在JavaServer Pages (JSP) 技术中,指令(Directives)和动作(Actions)是两种关键元素,用于扩展和控制页面的行为。本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`<jsp:include>`, `<jsp:forward...
在JSP中,`<jsp:include>`标签是用于在页面间进行内容包含的,但有时可能会遇到“乱码”问题,这通常涉及到字符编码的处理。本文将详细解析JSP `include` 乱码问题的成因以及解决方法。 首先,我们要理解乱码产生的...
在Java Web应用开发中,Page指令和Include指令是两个重要的JSP元素,它们在构建动态网页时发挥着关键作用。本案例旨在通过实践操作来学习这两个指令的使用方法。 Page指令,以`<%@ page %>`开头,用于设置整个JSP...
jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指令元素(page指令/include指令/taglib指令)复习整理基于jsp:included的使用与jsp:param乱码...
**include指令** - **定义**: `include`指令用于静态地包含其他资源的内容。 - **语法**: ```jsp <%@ include file="relativePath" %> ``` - **实验应用**: - 在`first.jsp`、`third.jsp`和`second.jsp`中分别...
2. **include指令**: - `include`指令用于在JSP页面中动态地插入其他文件的内容。被包含的文件可以是文本文件、HTML文件或JSP页面。在转换为Servlet时,被包含的文件内容会与主JSP页面合并。这提供了代码重用和...
Java Web 初级编程 JSP 页面元素 JAVA Web 编程是当前 Web 开发中非常重要的一...Page 指令和 Include 指令是 JSP 页面元素中非常重要的两种指令,它们用于在 JSP 页面中指定不同的指令,以便控制 JSP 页面的行为。