日期:2014-05-16  浏览次数:20383 次

<jsp:include />和<%@include %>的区别

<jsp:include />动态包含

<%@include %>静态包含


1、属性

后者不能这样传参数<%@ include file=“A.jsp?name=ygl”%> ?file后的路径必须是明确的

但是前者可以是动态的,而且可以传参数


2、处理方式

<%@ include file=”relativeURI”%> 是在翻译阶段执行?

在编译阶段就把两个jsp文件合成,然后再由编辑器编译合成后的文件,所以

只产生一个.java文件和一个.class文件


<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.?

只有当这个标识被执行的时候,程序才会把请求转发到这个文件,然后返回结果,所以

产生二个.java文件和二个.class文件


3、编码问题

<%@ include file=”relativeURI”%>?的话,两个页面的编码必须是一致的,因为最后会合成一个再编译

<jsp:include page=”relativeURI” flush=”true” />?则随便都行,因为服务器是把请求发过去的,所以他会安装自己的编码

再返回结果的



其实归根到底所有的区别,只是他们被处理的时间不同,一个是编译前,一个是运行时

所以这其实就是静态和动态的区别而已