您的位置:首页 > Web前端 > JavaScript

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

2014-10-19 14:32 363 查看
在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.csdn.net/yangbobo1992/article/details/8085667
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: