A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明天,你好 中级黑马   /  2013-5-11 22:00  /  4209 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

<jsp:include page="/jsp/head.jsp"></jsp:include>和jap指令中的include有什么区别,也就是动态引入和静态引入有什么区别,最近看jsp此处不明白,希望知道的能指点一下?

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

3 个回复

倒序浏览
你想导入的是不是静态和时候参数变量
回复 使用道具 举报
1,<%@include  file=””%>是在翻译阶段执行

<jsp:include page="page.jsp"/>在请求处理阶段执行.

2,静态引入是指令标签,动态引入是行为标签。

3,动态引入生成两个java文件,静态引入只生成一个java文件

4,动态引入可以传递参数,静态引入不能传递参数。

5,静态引入被引入的页面发生改变所有的页面都得重新编译,而动态引入被引入的页面发生改变,只需编译被引入的页面。

6,根据特点,静态引入可以引入静态页面,动态引入可以引入动态页面



评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
jsp中include有两种形式,分别是Include指令:<%@ include file=""%>和include动作:<jsp:include page="" flush="true"/>
前者是指令元素、后者是行为元素。
两者最重要的区别:JSP指令<%@ include file=""%>,是将被引入的JSP与原JSP融合到一起,而这个融合过程是在翻译阶段进行的。
JSP容器负责将jsp页面转化成servlet,并编译这个servlet。这两个步骤就构成了翻译阶段。
jsp页面是把include指令元素(<%@ include file=""%>)所指定的页面的实际内容(也就是代码段)加入到引入它的jsp页面中,合成一个文件后被jsp容器将它转化成servlet。可以看到这时会产生一个临时class文件和一个servlet源文件。而动作元素(<jsp:include page=""/>)是在请求处理阶段引入的,会被JSP容器生成两个临时class文件和两个servlet原文件。而引入的只是servlet的输出结果,即JspWriter对象的输出结果,而不是jsp的源代码。

总结一下两种include 两种用法的区别,主要有两个方面的不同:
一、执行时间上:
<%@ include file=”relativeURI”%> 是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行。
二、二:引入内容的不同:
<%@ include file=”relativeURI”%> 引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起。
<jsp:include page=”relativeURI” flush=”true” /> 引入执行页面或servlet所生成的应答文本。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马