我第一次尝试使用 Tomcat7 的 ubuntu 服务器而不是 Windows 服务器。
对于 java web 项目,当我调用 servlet 或只是建立链接时,我会将代码编写为“/servlet”之类的 url,它将转到 ip/app/servlet,但在 ubuntu ip/servlet 上(就像它一样)是网络应用程序的名称)。如果我删除正斜杠它可以工作,但这确实很不方便,因为当我在我的 Mac 上开发和测试时,它可以与正斜杠一起正常工作。
我已将 tomcat7 更改为监听端口 80 而不是 8080,但不确定这是否与此有关?
这也让我想知道我是否留下了任何安全漏洞?
有谁知道这个问题应该如何解决吗?
注意:这不仅是 servlet 的问题,也是 jsps、html 等的问题。
最佳答案
如果您希望像/user.jsp 这样的 URL 指向 Tomcat 中的应用程序,那么您必须将您的应用程序部署为根应用程序(通过将其命名为 ROOT.war)
如果您想让事情正确进行,那么就不要假设任何有关上下文路径的信息,并且始终将其添加到应用程序中的所有 URL 之前。这可以通过使用 <c:url>
轻松完成。 JSTL 的标签:
<a href="<c:url value='/user.jsp'/>">
此标记对于正确编码 URL 中的参数也非常有用,无论如何您都应该使用它。
关于java - 网址为 : "/servlet" goes to "ip/servlet" instead of "ip/app/servlet",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024857/