java - 网址为 : "/servlet" goes to "ip/servlet" instead of "ip/app/servlet"

标签 java url ubuntu tomcat7

我第一次尝试使用 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/

相关文章:

php - 如何使用 PHP 在 URL 中传递 URL(作为 GET 参数)?

ubuntu - 如何在命令行中呈现 UTF-16BE?

linux - 将 neo4j 数据库从 Windows 迁移到 Ubuntu

java - 如何告诉项目下载内部依赖?

linux - 用于重复 URL 请求的 Curl 命令

java - 检测 USB 连接并检查它是否是 PC

python - 当我使用 CURL 与使用 URLLIB2 时,为什么会得到不同的结果?

c# - Mono 消费 WCF 服务失败 ServiceClient Linux

java - 如何将 JTextfield 的输入从字符串转换为字符?

java - 对于参数类型 long、Object,运算符 - 未定义