在jsp页面中,我们通常会看到代码。
< %
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
我使用这种方式获取静态资源:
<script type="text/javascript" src="<%=path%>/js/jquery-1.9.1.min.js"></script>
但我发现使用其他方式也没关系。
<script type="text/javascript" src="<%=basePath%>/js/jquery-1.9.1.min.js"></script>
有什么区别?我应该何时只使用basePath
?或者它们具有相同的效果?
答案 0 :(得分:1)
basePath
是您的Web应用程序的绝对路径,例如
http://example.net:8080/mycontext/
而path
只是上下文路径,即
/mycontext
使用basepath
获取(静态)资源可在简单的网络拓扑/设置中工作。在您的应用程序落后于负载平衡器的情况下,使用basePath
会破坏负载平衡的概念,因为请求会转到与JSP相同的主机和端口。
由于您的Web应用程序可能位于负载均衡器,防火墙或Web服务器之后,因此您不建议使用basePath
方法,因为您不知道用户在更复杂的网络中看到了哪个URL设置。