url with:“/ servlet”转到“ip / servlet”而不是“ip / app / servlet”

时间:2013-11-16 22:42:20

标签: java url ubuntu tomcat7

我第一次尝试使用tomcat7而不是Windows服务器的ubuntu服务器。

对于java web项目,当我调用servlet或只是建立链接时,我会将代码设置为像“/ servlet”这样的url,它会转到ip / app / servlet,而是转到ubuntu ip / servlet(就像它一样)是webapp的名称)。如果我删除正斜杠它可以工作,但那真的很不方便,因为当我在我的mac上开发和测试时,它可以正常斜线工作。

我更改了tomcat7来侦听端口80而不是8080,但不确定这是否与它有关?

这也让我想知道我是否打开了任何安全漏洞?

任何人都知道应如何解决这个问题?

注意:这不仅是servlet的问题,而且是jsps,htmls等。

1 个答案:

答案 0 :(得分:2)

如果您希望/user.jsp这样的网址指向Tomcat中的应用,那么您必须将您的应用部署为根应用程序(通过命名为ROOT.war)

如果你想要正确地做事,那么不要假设有关上下文路径的任何内容,并且将它添加到应用程序中的所有URL。这可以通过使用JSTL的<c:url>标记轻松完成:

<a href="<c:url value='/user.jsp'/>">

此标记对于正确编码URL中的参数也非常有用,无论如何都应该使用它。