URL在Tomcat 7上丢失应用程序名称

时间:2011-08-07 02:58:27

标签: java url tomcat tomcat7

我有一个在Tomcat 7上运行的Java应用程序。我希望我的应用程序在URL中有它的名字。例如:

http://localhost:8080/MyApp

我构建WAR,部署,并正确访问应用程序。但是,我的所有<a><form>标记都不会将应用名称添加到网址中。就是这样做:

<a href="/myPage">Click Me</a>

不起作用。链接最终如下:

http://localhost:8080/myPage

而不是

http://localhost:8080/MyApp/myPage

有没有办法配置Tomcat将应用程序名称添加到链接等?如上所述,我不希望从URL中删除应用程序名称(即将其作为根目录)。我知道有一些工作(比如手动将上下文路径添加到URL,使用<c:url>等等。但我想知道是否可以告诉Tomcat这样做。我认为这是要问的地方,因为请求没有进入我的应用程序。如果重要,我使用的是Spring MVC和Maven。

1 个答案:

答案 0 :(得分:4)

  

我知道有一些解决方法(比如使用<c:url>手动将上下文路径添加到网址上

这些不是解决方法。这些是解决方案。你犯了一个错误,总是假设webapp在域根上运行。最简单的解决方案-imo-正在使用HTML <base>。另请参阅here

  

但我想知道是否可以告诉Tomcat这样做。我认为这是要问的地方,因为请求没有到达我的申请。

没有。这不是servletcontainer的责任。 JspServletDefaultServlet都不这样做。这是webapp自己的责任(以及适用的serveradmin)。