静态包含和动态包含的区别

时间:2022-02-27 19:32:31

静态包含:<%@ include file="被包含页面"%>

动态包含:<jsp:include page="被包含页面" flush="true">

区别:JSP在WEB服务器中都要转换成一个java文件,java文件再编译成一个class文件,当请求JSP页面的时候,实际上运行的是

这个class文件。 

        静态包含发生在:JSP生成java文件阶段之前,就已经包含在一起,父页面把所有页面的页面信息都收集完成后,统一的进行解析,完成页面的输出,所以只生成一个java文件与一个class文件。因为是合成一个文件在进行编译,所以在不同的页面中定义了相同名称的变量,那么就会产生冲突。

        动态包含发生在:执行class文件阶段动态加入,在动态引入中,由于每一个页面都是单独的进行解析的,再交给父页面合成生成一个 HTML 页面,所以编译jsp文件时就会生成好几个java文件与class文件。因为每个页面单独的进行解析,所以每个子页面和父页面中定义的 Scriptlet 是不会产生冲突的。