JSP / JavaScript Web应用程序中的绝对VS相对URL

时间:2013-07-28 21:05:55

标签: javascript ajax jsp web-applications

如何处理Java Web应用程序中Javascript文件中的 URL ,例如在做AJAX请求时?

您是否始终使用绝对网址进行AJAX通话? (包括Web应用程序上下文) - 如果应用程序上下文发生了变化,该怎么办?

或者您使用相对网址?这很困难,因为JSP文件可以通过应用程序中的多个不同URL映射加载。

更清楚:

假设我有一个在http://www.example.com/myapp/

下运行的java应用程序myapp.war

在Javascript文件中,我想对/getData.json进行AJAX调用 - 我可以通过绝对URL来执行此操作:

$.ajax({
  url: "/myapp/getData.json",
  cache: false
}).done(function(data) {
  ... 
});

这只有在我不重命名应用程序时才有效

或通过相对网址

$.ajax({
  url: "getData.json",
  cache: false
}).done(function(data) {
  ... 
});

但相对URL仅在当前页面位于正确路径时才有效。

1 个答案:

答案 0 :(得分:2)

绝对是首选;考虑一下你改变你的应用程序名称的频率与你弄乱文件结构的时间(提示:几乎从不与非常少,因此相关)

否定建议使用绝对路径;如果您使用相对路径,更改文件位置是您遇到的最少问题 - 请考虑一下当您启动 重构代码时发生的事情 (这是很常见的):方法,可能包含脆弱的URL引用,一直被提取到实用程序类,这些类可能会放在其他文件中。

底线是相对路径将有效地呈现您的代码严格,而绝对路径将允许更多灵活性