【问题标题】:How does the HTML page find a servlet in an Eclipse dynamic web project? [duplicate]HTML 页面如何在 Eclipse 动态 Web 项目中找到 servlet? [复制]
【发布时间】:2020-08-16 13:49:44
【问题描述】:

我在 Eclipse 中创建了一个动态 Web 项目,其中包含一个 HTML 页面(在项目的 WebContent 文件夹中),该页面应该将一些输入数据从用户发送到一个 servlet(名称为“Tee”)。 我尝试使用

定位servlet

form method="get" action="../../src/Tee"

它没有找到它。不,它不是状态 404 错误消息。但只是“页面无法显示”。

我试过这个:

form method="get" action="/Tee"

同样,也不行。

Tomcat服务器启动,项目部署在服务器上。如果我启动 servlet 本身,它会在服务器上毫无问题地运行(所有数据都设置为 null,因为这些数据应该来自 html 页面)。

是的,那里有类似的问题,但这些问题并没有给我真正的解决方案。

【问题讨论】:

  • 你得到什么错误? 404?
  • Kein Zugriff auf Seite = "网站无法访问"
  • 您尝试访问文件,而不是站点(至少在 Eclipse 中)
  • @bebeböbe - 将 doPost 重命名为 doGet。然后在 Eclipse 中右键单击 HTML 文件并单击 Run As > Run on server。请注意,在 HTML 表单中它应该是 action="Tee" 而不是 "/Tee""../../src/Tee"。如果您使用的是 Spring MVC,"Tee""/Tee" 中的任何一个都可以。
  • 如果我尝试“在服务器上运行”,我会收到一条消息“源服务器没有找到目标资源的当前表示或不愿意透露存在的表示”

标签: java eclipse servlets


【解决方案1】:

你需要编写一个类似这样的 servlet 类:

@WebServlet("/Tee")
public class Tee extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/plain");
        PrintWriter out = response.getWriter();
        out.write("Hello World!");
        //...
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //...
    }
}

编写servlet后,在Eclipse中右键单击其名称,然后单击Run As > Run on server

如果它在 Eclipse 浏览器中成功运行,它将可以在您的 HTML 中使用它的名称进行访问,例如

<form method="GET" action="Tee">
    <input type="submit">
</form>

更新

在您发布 servlet 代码后,我可以看到那里有问题。您在 HTML 表单中编写了 method="GET",但在 servlet 代码中,您只有 doPost。您应该在 servlet 中包含 doGet,以便在 HTML 表单中使用 method="GET"。在 servlet 中除了 doPost 之外,添加方法 doGet

【讨论】:

  • 是的,我写了这样一个servlet类。但是 Eclipse 中的浏览器说找不到。
  • 您需要将项目部署到服务器,例如雄猫。你有服务器吗? Tomcat 在您的 IDE 中可用吗?
  • 是的,我有一个Tomcat服务器,该项目已经部署在服务器上。
  • 是否标注@WebServlet?它是.java 文件吗?是在dource目录下吗?
  • 要添加到@dan1st 的要求,请确保您的服务器正在运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 2015-06-22
  • 2011-09-15
  • 2018-03-12
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多