JSP的动态包孕与静态包含

JSP的动态包含与静态包含

使用 <%@include...%> 静态包含
简单的理解就是你可以认为 这两个页面代码是写在同一个页面里。

使用 <jsp:include...> 动态包含
当 向这个页面发出请求 后。会转发到 include 的那个页面去执行。 执行完了后又接着执行本页面余下的代码。

 

<%@ include file=""%>指令在编写代码的时候一般放在最顶部,主要附加的是被重用的代码,这里所说的附加是指把源代码原封不动的附加过来,例如在jsp 程序中使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西。例如里面不要包 含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出 错。 

而应用<jsp:include>标签导入一个重用文件的时候,这个文件是经过编译的,通俗点说就是附加这个要导入文件经过编译后的效果,所以可以含有与当前jsp程序中重复的内容,因为在附加过来之前就会被解析掉。

 

1) 静态包含在转换成为java文件的时候将要包含的文件包含进来,作为一个整体编译。动态包含是各个包含文件分别转换,分别编译。
2) 静态包含在两个文件中不能有相同的变量,动态包含允许
3) 静态包含只能包含文件,动态包含还可以包含servlet输出的结果
4) 静态包含不能使用变量作为文件名,动态包含可以使用变量作为文件名
5) 动态包含文件发生变化,包含文件会感知变化。