一、JSP指令元素-include:
在JSP页面开发中,有时候为了减少代码的冗余,可以把在JSP开发中经常需要调用的功能代码封装成一个独立的JSP文件。其他JSP页面如果需要该部分代码,直接将其包含到当前页面即可。完成这样的操作,可以使用页面包含指令include。通常当应用程序中所有页面的某些部分(如top、down)都相同的时候,可以考虑使用该指令。
Include指令表示在当前页面中包含一个静态文件,静态包含的具体含义是指这个被包含的文件将会被完整地插入到原来的主JSP文件中去,这个由主JSP文件包含的文件可以是JSP文件、HTML文件、文本文件或者只是一段Java代码等。(当在一个JSP文件中引入另一个JSP文件时,可能会出现错误,原因是两个JSP页面中都进行了页面编码格式的设置,将被包含文件中的page指令去掉即可)其语法格式为:
<%@include file=”URL”%>
其中file表示要包含的文件,URL表示引入文件的相对路径或绝对路径。
include指令在翻译阶段(将JSP转换成Servlet的阶段)会读入指定的页面中的内容,并将这些内容和原来的页面融合起来。在融合过程中,引入的页面只是将普通文本进行融合,并不对动态内容求值,融合以后的完整页面再被整体的转换为一个Servlet。这意味着主页和被引入的页面共享所有的页面作用于数据。因此,如果在主页面声明了一个变量,而在某个被引入的页面中也声明了一个同名的变量,那么在翻译阶段将会出现错误,因为组合后的页面无法进行编译。
二、JSP动作指令<jsp:include>:
<jsp:include>动作指令表示在当前的JSP页面中,包含静态或动态资源。前面提及的include是在JSP页面被转换成Servlet的时候引入文件,这个是在页面被请求的时候引入文件,而且被引用文件不能包含某些JSP代码(例如不能设置HTTP头)。<jsp:include>动作指令可以在当前的JSP文件包含txt文件、JSP文件、HTML文件、Servlet文件。其语法格式为:
<jsp:include page=”URL” flush=”true” />
其中URL表示引入文件的相对路径或绝对路径,flush=”true”表示是否在包含目标之前先刷新输出缓冲区,其默认值为true。
或:
<jsp:include page=”URL” flush=”true” >
<jsp:param name=”paramName” value=”paramValue” />
</jsp:include>
其中<jsp:param>子句表示用来传递一个或多个参数给动态文件。当然,也可以在一个页面中使用多个<jsp:param>来传递多个参数给动态文件。
三、两者之间的区别:
最主要的区别:
include指令元素是在JSP页面被转换成Servlet的时候引入文件,包含的是源代码。
<jsp:include>动作指令是在页面被请求的时候引入文件且只include运行结果。include行为使用request.getRequestDispatcher(“URI”).forward(request, response)来执行被包含文件。
四、实例测试:
date.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %> <html> <head> <title>获取当前时间</title> </head> <body> 当前的时间是:<%= new Date()%> </body> </html>
date.html:
<html> <head> <title>静态页面</title> </head> <body> 这是date.html中的信息<br /><br > </body> </html>
incluede.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %> <html> <head> <title>测试include和jsp:include</title> </head> <body> 使用include指令<br /><br /> <%@include file="date.html" %> <%@include file="date.jsp" %> <br /><br /> <hr /> 使用jsp:include动作指令<br /><br /> <jsp:include page="date.html" flush="true"></jsp:include> <jsp:include page="date.jsp" flush="true"></jsp:include> </body> </html>
相关推荐
JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...
JSP中include指令静态导入和动态导入的区别.pdf 学习资料 复习资料 教学资源
通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。具体在哪些时候用< %@ include file=” ”%>,哪些时候用< jsp:include page=” ” flush=...
主要介绍了jsp中include指令静态导入和动态导入的区别,通过示例和图文讲解可以更好的看出他们的区别,需要的朋友可以参考下
jsp的Include方式
JSP:include和include指令区别,对应我的博客 blog.csdn.net/svitter
jsp的include的两种用法 jsp的include的两种用法
NULL 博文链接:https://dreamzhong.iteye.com/blog/1127436
2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX
jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指令元素(page指令/include指令/taglib指令)复习整理基于jsp:included的使用与jsp:param乱码...
JSP中的include有哪些?有什么区别? 1、JSP中的include有哪些 (1)<%@include file=”” %> (2)<jsp page=”” flush=”true”/> 2、两者区别 (1)前者是指示元素,后者是行为元素 (2)前者合成一个...
动态INCLUDE 用法:<jsp page=”included.jsp” flush=”true”> 说明:它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,先编译之后再进行处理。 原因:1、静态include的结果是把其他jsp引入...
用jsp:include动作实现 <jsp include page=”included.jsp” flush>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE 用include伪码实现,定不会检查所含文件的变化,...
考虑下面JSP文件代码片断: <jsp:include page=”test2.jsp”> <jsp:param name=”username” value=”accp”/> </jsp:include> 以下( )代码片断放置在test2.jsp中不会导致错误。
jsp include 乱码问题的解决方法! 希望能够解决你的问题!
在 JSP 开发中,include 文件是一个常用的技术手段,可以将公共的代码或者组件包含到不同的页面中,以提高代码的复用性和维护性。然而,在使用 JSP include 文件时,经常会遇到乱码的问题,尤其是在 Tomcat 服务器上...
jsp中include有两种,两种不同的实现方式。
采用相对路径 假设当前目录名为a, 目标文件夹为b (1)如果b是a的上级目录, 代码如下:<...jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指