我有一个在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。
答案 0 :(得分:4)
我知道有一些解决方法(比如使用
<c:url>
手动将上下文路径添加到网址上
这些不是解决方法。这些是解决方案。你犯了一个错误,总是假设webapp在域根上运行。最简单的解决方案-imo-正在使用HTML <base>
。另请参阅here。
但我想知道是否可以告诉Tomcat这样做。我认为这是要问的地方,因为请求没有到达我的申请。
没有。这不是servletcontainer的责任。 JspServlet
和DefaultServlet
都不这样做。这是webapp自己的责任(以及适用的serveradmin)。