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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马---邢志伟 初级黑马   /  2012-7-19 09:09  /  1044 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

inclue指令和JSP:inclue>动作标识的功能区别是什么。比较模糊。。。

4 个回复

倒序浏览
前者是静态引入页面的,后者是动态引入页面的。前者是不能传递参数,后者可以引入的页面传递参数的
回复 使用道具 举报
include指令是先导入一个文件在编译----
include动作是先编译被包含文件再导入--

include指令,被包含的文件为原封不动的插入到包含页中使用该指令的位置,
然后jsp编译器再对这个合成的文件进行编译,所以在一个jsp页面中使用include指令来包含另外一个jsp页面,最终编译后的文件只有一个。
属于静态包含,只能包含HTML,不能带参数,当被包含的文件发生变化时,还要重新编译。


include 动作标识包含文件时,当该标识执行时,程序会将请求转发到(注意是转发而不是重定向)被包含的页,并将执行结果输出到浏览器中,
然后返回包含页继续执行后面的代码,因为服务器执行的是两个文件。所以jsp编译器会分别对这两个文件进行编译.
属于动态包含,可以包含HTML、JSP,可以带参数,当被包含的文件发生变化时,不需要重新编译。


一般用include动作比较方便。

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Include动作与Include指令的区别对比
--------------------------------------------------------------------------------
  include 动作 include 指令
语法 <jsp:include page="..."> <%@ include file="..."%>
包含动作的发生时间 请求期间 页面转换期间
包含的内容 页面的输出 文件的实际内容
产生多少个 servlet 两个 ( 主页面和次级页面都会成为独立的 servlet ) 一个 ( 次级页面首先被插入到主页面中,然后得到的页面被转换成 servlet )
被包含的页面中可否设置影响主页面的响应报头 不可以 可以
被包含的页面中可否定义主页面使用的字段或方法 不可以 可以
被包含的页面发生更改时是否需要更新主页面 不需要 需要
等同的 servlet 代码 RequestDispatcher 的 include 方法 没有

include动作与inclue指令优缺点

include动作 <jsp:include page="" /> 它允许我们在请求期间将其他页面的输出包含进来

优点:在被包含的页面作出更改时,无须对主页面作出更改。
缺点:它所包含的是次页面的输出,而非次页面的实际代码。

所以在被包含的次级页面中不能使用任何有可能总体上影响主页面的jsp构造。
它的优点远远胜过它的缺点,这几乎注定它会比其他包含机制应用的更为普遍。

include指令 <%@ include file="" %> 它可以在主页面转换成servlet之前,将jsp代码插入其中。

优点:功能强大,所包含的代码可以含有总体上影响主页面的jsp构造,例如字段的定义和内容类型的设定。
缺点:难以维护,只要被包含的页面发生更改就要更新主页面。



--------------------------------------------------------------------------------
使用include动作还是include指令?
使用include指令,如果被包含的文件发生改变,那么,用到它的所有Jsp页面都需要更新。
仅当include动作不能满足要求时,我们才应该使用include指令。

有些开发人员认为include指令生成的代码执行起来比使用include动作的代码更快。尽管原则上由可能的确如此,但性能上的差异很小,以致难以测量,同时,include动作在维护上的优势十分巨大,当两种方法都可以使用时,include动作几乎肯定是首选的方法。

对于文件包含,应该尽可能地使用include动作。
仅在所包含的文件中定义了主页面要用到的字段或方法,或所包含的文件设置了主页面的响应报头时,才应该使用include指令。

既然include指令产生难以维护的代码,为什么人们还要使用它呢?
因为include指令更为强大。include指令允许所包含的文件中含有影响主页面的Jsp代码,比如响应报头的设置和字段、方法的定义。

例如:

subpage.jsp

<%! int num=0; %>mainpage.jsp
<html>
<body>
<%@ include file="subpage.jsp" %>
<%= num %>
</body>
</html>当然使用include动作时这是不可能的,因为num变量未定义,主页面不能成功的转换成servlet

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
弄了好半天 希望能帮到你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马