【问题标题】:Servlet can be accessed directly against localhost but not when accessed after site nameServlet 可以直接针对 localhost 访问,但不能在站点名称后访问
【发布时间】:2016-08-12 10:44:47
【问题描述】:

我已经编写并编译了一个 servlet,我已将其添加到我的 WEB-INF/classes 文件夹并更新了 web.xml 文件以映射到 /MyServlet

这样我可以导航到http://localhost:8080/MyServlet 并获得预期的结果。

我现在希望能够通过导航到 http://localhost:8080/MySite.html/MyServlet 来访问这个 servlet,但是这给了我一个 404 错误。

我可以毫无问题地访问http://localhost:8080/MySite.html,并且该html文件与WEB-INF文件夹位于同一级别。该站点似乎无法访问classes 文件夹,所以我需要更改其他设置来解决此问题吗?

【问题讨论】:

  • 是DynamicWebApplication项目吗?
  • 我最初在 JavaEE 应用程序客户端项目中编写了 servlet,但我只是尝试创建一个新的动态 Web 应用程序项目,仍然得到相同的结果 - 我可以直接针对 localhost 访问 servlet但不是作为实际站点后的反斜杠
  • “我现在希望能够通过导航到 localhost:8080/MySite.html/MyServlet 来访问这个 servlet” - 但为什么呢? MySite.html 显然不是站点名称,只是另一个资源的名称(在本例中为 html 文件)。如果您转到 /MySite.html,浏览器将获取 html 文件,如果您转到 /MyServlet,浏览器将获取 servlet 生成的内容。除了您的期望之外,我没有发现任何问题。
  • @CrazyHorse:Gimby 是对的。但是对于您的方法,可能是在 web.xml 中尝试正确的 servlet url。至于您将您的 servlet 类映射到 /MySite.html/MyServlet
  • 谢谢,现在我明白了。所以唯一错误的是我的理解。 @Gimby - 如果你想让你的回答成为我会接受的答案

标签: tomcat servlets jakarta-ee


【解决方案1】:

“我现在希望能够通过导航到 localhost:8080/MySite.html/MyServlet 来访问这个 servlet” - 这是一种误解。

MySite.html 显然不是站点名称,而只是另一个资源的名称——在这种情况下是一个 html 文件。如果你转到/MySite.html,浏览器将获取 html 文件,如果你转到/MyServlet,浏览器将获取 servlet 生成的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2016-10-28
    • 1970-01-01
    • 2022-01-14
    • 2011-07-17
    • 2014-09-02
    相关资源
    最近更新 更多