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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许阳 黑马帝   /  2011-9-30 20:53  /  1939 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

进行java web项目开发时如果当前一个jsp页面要包含其他的jsp页面的内容,有两种方式:
        分别如下:
         1.  <%@ include file="要包含的jsp页面名称" %>;

         2.<jsp : include page = "要包含的jsp页面名称">;

         请问这两种方式有什么区别呢?

评分

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

查看全部评分

3 个回复

倒序浏览
<%@ include file="要包含的jsp页面名称" %>      
----静态包含                                       
----include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入,然后再编译执行;                           
----只生成一个class文件                           
----Include不能带参数                             
----同一个request对象                              
                                                
<jsp : include page = "要包含的jsp页面名称">
----动态包含
----而include指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入
----生成多个class文件
----<jsp:include>可以带参数
----不同的request对象,可以取得包含它的页面的参数,并添加了自己的参数
[ 本帖最后由 邢勇 于 2011-09-30  21:37 编辑 ]

评分

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

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-1 01:12:13
藤椅
1<%@ include file="要包含的jsp页面名称" %>——这是jsp的指令标记。
它的作用是在jsp页面出现该指令的地方,静态加入一个文件,静态加入意思就是当前的jsp页面和插入的那个文件合并成了一个新的jsp页面,然后jsp叶面再将这个新的页面转译陈java文件。
2<jsp : include page = "要包含的jsp页面名称"> ——这个呢是jsp动作标记,其实从名字上就能看出他们的区别。
他是动态加载一个文件,与静态插入不同,当jsp引擎转译文件的时候,不把jsp页面中动作标记指令include所指的文件与原jsp文件合并成一个文件,而是在jsp运行时才被处理,

虽然他们都能实现代码的复用,但是处理方式和时间上时不同的,<%@ include file="要包含的jsp页面名称" %>优点是页面执行速度快,缺点是太依赖于当前jsp页面,
<jsp : include page = "要包含的jsp页面名称"> 优点是被处理的文件在逻辑上和语法上更独立,param子标记更加灵活处理文件,缺点是执行速度慢。

不知道你能看懂吗,写的条理性不太好!

评分

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

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-10-1 14:00:59
板凳
多谢两位马友耐心的解答,看过你们详细的解答之后,我简直是豁然开朗。多谢啦!:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马