浏览 1595 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-13
最后修改:2009-11-13
简单总结一下: 准备知识: 1.翻译阶段 jsp容器负责将jsp页面转化成servlet(*.jsp-->*_jsp.java.称为jsp页面实现类:JSP Page implementation class),并编译这个servlet(*_jsp.java-->*_jsp.class) 2.请求处理阶段 调用jsp页面实现类以处理每个请求并产生应答 <%@ include file="*.jsp" %> 引入的jsp在宿主jsp的翻译阶段,与宿主jsp合成了一个*_jsp.java文件; 此时宿主jsp还未编译。 <jsp:include page="" flush="true"/> 引入的jsp与宿主jsp分开翻译,转化成两个不同的*_jsp.java文件; 直到宿主jsp编译后运行时,才会引入。 文章中有些语焉不详之处,经过测试,注意以下几点: 1.include file 引入的页面,其代码原封不动的插在引入的位置,所以jsp中定义的path,basepath只能保留一组,否则会提示重复定义; jsp:include 引入页面,是在运行时把编译后的结果插入进来,不会出现上述问题。 2.形象一点,include file 好像是把两个页面合并在一起然后同一编译,所以在引入页面有效的request对象,引入之后,仍然能够被宿主jsp访问; jsp:include则是分开编译,所以request对象无法共享。 3.include file 是静态插入,只在第一次引入时编译一次,如果后来发生了变化,在页面上无法及时的显示出来; jsp:include是动态引入,jsp容易会监视引入页面的变化,及时将改变反映到页面上来。 可见二者各有所长啊。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |