在设计网页时,常常有一些会重复利用的内容,如页眉页脚的内容,将它们单独做成一个页面,在需要用到它们的地方使用<@include>和<jsp:include>
一、<@include>
<@include file = "fileName">
将“fileName”页面的
所有内容复制到使用该语句的位置。注意在被引用的页面中不要包含<html><body>。
二、<jsp:include page="">
作用与<@include>相同。
配合<jsp:param>可以向被引用的页面传递parameter。
使用<jsp:include>的页面
<jsp:include page=”Header.jsp” >
<jsp:param name=”subTitle” value=”We take the sting out of SOAP.” />
</jsp:include>
被引用的页面
${param.subTitle}
三、<@include>与<jsp:include>的区别
使用<@include>时,container在翻译jsp页面之前将被引用内容全部复制到相应位置,这个过程只在第一次请求jsp页面时发生一次。在container将JSP页面翻译成JAVA 代码 时,将<jsp:include>翻译为_jspService()中的一个调用语句,因此<jsp:include>是动态的,每请求JSP页面一次都会在新的线程中调用_jspService(),从而调用<jsp:include>对应的语句。使用<jsp:include>时,被引用的JSP页面生成的servlet的response会与主JSP页面的servlet的response结合,因此可以传递param。
四、<jsp:forward>
<jsp:forward page = "">跳转到任意资源,在跳转之前container会清空response buffer中的所有内容,若使用<%out.flush%>清空buffer后再跳转则会得到异常,但清空之前buffer中的内容还是会正常输出。