黑马程序员技术交流社区

标题: 有关jsp的问题 [打印本页]

作者: 许阳    时间: 2011-9-30 20:53
标题: 有关jsp的问题
进行java web项目开发时如果当前一个jsp页面要包含其他的jsp页面的内容,有两种方式:
        分别如下:
         1.  <%@ include file="要包含的jsp页面名称" %>;

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

         请问这两种方式有什么区别呢?
作者: 邢勇    时间: 2011-9-30 21:34
<%@ include file="要包含的jsp页面名称" %>      
----静态包含                                       
----include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入,然后再编译执行;                           
----只生成一个class文件                           
----Include不能带参数                             
----同一个request对象                              
                                                
<jsp : include page = "要包含的jsp页面名称">
----动态包含
----而include指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入
----生成多个class文件
----<jsp:include>可以带参数
----不同的request对象,可以取得包含它的页面的参数,并添加了自己的参数
[ 本帖最后由 邢勇 于 2011-09-30  21:37 编辑 ]
作者: 匿名    时间: 2011-10-1 01:12
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子标记更加灵活处理文件,缺点是执行速度慢。

不知道你能看懂吗,写的条理性不太好!
作者: 匿名    时间: 2011-10-1 14:00
多谢两位马友耐心的解答,看过你们详细的解答之后,我简直是豁然开朗。多谢啦!:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2