在Web应用中都称作包含,<%@include%>为静态包含,<jsp:include/>为动态包含。
那么究竟什么是静态包含什么是动态包含?
简单的理解是:
使用<%@include%>(静态包含),将被导入的页面的代码完全融入,两个页面融合成一个整体Servlet提交给Tomcat编译,在MyEclipse中使用静态包含时可能出现:
- Duplicate local variable path
- Duplicate local variable
的错误,其实是使用<%@include%>时会自动引进如下代码:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
这里用到的变量basePath 与MyEclipse默认生成的代码来指定路径重复,所以在使用<%@include%>时需要对默认生成的代码的变量名进行修改。
使用<jsp:include/>(动态包含),是在Servlet中使用include方法来引入被导入页面的内容,Servlet容器会先编译被导入内容再将结果包含到原页面中一起编译。另外值得一提的是动态包含可以增加额外的参数,通过request和reponse进行通信。
部分内容参考:http://blog.youkuaiyun.com/yangbobo1992/article/details/8085667
本文深入探讨了Web应用中静态包含与动态包含的区别,包括它们如何工作以及各自的优缺点。重点介绍了如何在MyEclipse中正确使用静态包含避免出现错误。
1万+

被折叠的 条评论
为什么被折叠?



