JSP页面静态包含和动态包含的区别与联系

时间:2023-05-10 22:58:11
JSP页面静态包含和动态包含的区别与联系

---恢复内容开始---

JSP页面静态包含和动态包含的区别与联系:

1、<%@ include file=” ” %> 是指令元素,<jsp:include page=” ”/> 是行为元素。

2、静态包含:

语法:<%@ include file=” ” %>,

包含文件先是要直接复制一份内容到主体页面内,然后被包含的内容一起和主体转换成.class文件。只出现一个.class文件一个java文件,最终编译成java文件。

3、动态包含:

语法:<jsp:include page=” ”/> ,

动态包含可以包含静态页面,也可以包含动态页面。

如果包含的是静态页面,那么和静态包含差不多,也是直接复制一份被包含页面的内容到主体文件后一起被转换成.class文件,最终编译成java文件。

如果包含的是动态页面,则被包含页面和主体页面,分别转换成.class文件后,分别编译成java文件,最后被包含页面才加载到主体页面,出现多个.class文件和多个java文件。

4、静态包含发生在jsp向servlet转换的时期,一起最后被编译成java文件后,再向servlet转换,所以被包含页面和主体页面的编码必须一致。

5、动态包含发生在编译时期,当执行到被包含页面时,才转换,所以产生多个java和class文件。

6、静态包含因为是编译前就合并了,所以在文件间传参是没有意义的,访问的是同一个request对象,因为是同一个servlet,同在 _jspService() 方法中。

7、动态包含因为是当执行到被包含页面时,才转换,所以多个文件的request对象不是同一个,但被包含页面可以取得包含页面的参数,从而动态包含可以传参数,也可以通过标签传递参数:

< jsp:include page="..." flush=true>
< jsp:param name="..." value="..."/>
< /jsp:include>

---恢复内容结束---

JSP页面静态包含和动态包含的区别与联系:

1、<%@ include file=” ” %> 是指令元素,<jsp:include page=” ”/> 是行为元素。

2、静态包含:

语法:<%@ include file=” ” %>

包含文件先是要直接复制一份内容到主体页面内,然后被包含的内容一起和主体转换成.class文件。只出现一个.class文件一个java文件,最终编译成java文件。

3、动态包含:

语法:<jsp:include page=” ”/> ,

动态包含可以包含静态页面,也可以包含动态页面。

如果包含的是静态页面,那么和静态包含差不多,也是直接复制一份被包含页面的内容到主体文件后一起被转换成.class文件,最终编译成java文件。

如果包含的是动态页面,则被包含页面和主体页面,分别转换成.class文件后,分别编译成java文件,最后被包含页面才加载到主体页面,出现多个.class文件和多个java文件。

4、静态包含发生在jsp向servlet转换的时期,一起最后被编译成java文件后,再向servlet转换,所以被包含页面和主体页面的编码必须一致。

5、动态包含发生在编译时期,当执行到被包含页面时,才转换,所以产生多个java和class文件。

6、静态包含因为是编译前就合并了,所以在文件间传参是没有意义的,访问的是同一个request对象,因为是同一个servlet,同在 _jspService() 方法中。

7、动态包含因为是当执行到被包含页面时,才转换,所以多个文件的request对象不是同一个,但被包含页面可以取得包含页面的参数,从而动态包含可以传参数,也可以通过标签传递参数:

< jsp:include page="..." flush=true>
       < jsp:param name="..."     value="..."/>
< /jsp:include>