首页 > 解决方案 > 如何让 Eclipse 浏览器打开 servlet 的指定 @WebServlet URL

问题描述

所以我在 Eclipse IDE (2019-09 R 4.13.0) 中创建了一个新的“动态 Web 项目”。我将这个项目称为“MyProject”。创建此项目时,我指定了 Apache Tomcat 9.0 的目标运行时和 4.0 的动态 Web 模块版本。

对于该项目,在“Java Resources/src”下,我创建了一个简单的 servlet。我将 servlet 称为“TestServlet”。对于那个 servlet,我使用了 @WebServlet("/TestServlet") 注释。Servlet 代码如下。

当我从 Eclipse 项目资源管理器中直接右键单击“TestServlet”servlet 类并选择 Run As->Run on Server 时,Eclipse 成功打开了它的内置浏览器。

但是,这里是我认为有问题的地方。

Eclipse 浏览器打开到http://localhost:8080/MyProject/。如果我从 /MyProject 项目文件夹中单击 Run As->Run on Server,我希望看到这种行为。但是,我从 /MyProject/Java Resources/src/TestServlet.java 类下的 TestServlet 类中单击了 Run As->Run on Server。因此,我希望 Eclipse 浏览器打开到http://localhost:8080/MyProject/TestServlet

我错了吗?

我在 Tomcat 9 和 JRE 1.8 上运行。

请注意,如果我在 Eclipse 浏览器中手动键入“ http://localhost:8080/MyProject/TestServlet ”作为 URL,则 servlet 会按预期运行。

任何解决这个问题的帮助表示赞赏!

package com.myproject.demo;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TestServlet
 */
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

}

标签: javaeclipseservlets

解决方案


推荐阅读