我第一次尝试使用tomcat7而不是Windows服务器的ubuntu服务器。
对于java web项目,当我调用servlet或只是建立链接时,我会将代码设置为像“/ servlet”这样的url,它会转到ip / app / servlet,而是转到ubuntu ip / servlet(就像它一样)是webapp的名称)。如果我删除正斜杠它可以工作,但那真的很不方便,因为当我在我的mac上开发和测试时,它可以正常斜线工作。
我更改了tomcat7来侦听端口80而不是8080,但不确定这是否与它有关?
这也让我想知道我是否打开了任何安全漏洞?
任何人都知道应如何解决这个问题?
注意:这不仅是servlet的问题,而且是jsps,htmls等。
答案 0 :(得分:2)
如果您希望/user.jsp这样的网址指向Tomcat中的应用,那么您必须将您的应用部署为根应用程序(通过命名为ROOT.war)
如果你想要正确地做事,那么不要假设有关上下文路径的任何内容,并且将它添加到应用程序中的所有URL。这可以通过使用JSTL的<c:url>
标记轻松完成:
<a href="<c:url value='/user.jsp'/>">
此标记对于正确编码URL中的参数也非常有用,无论如何都应该使用它。