java - 如何让 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());
}
}
解决方案
推荐阅读
- java - 如何在范围报告中捕获所有测试用例?
- c# - How to fix stored procedure expects return parameter which was not supplied in C#?
- django - Retrieve Django hidden MultipleChoice form field value
- r - 不同层和几个netcdf文件的平均值与R
- ios - 呈现的 UIViewController 不能呈现 UIAlertController
- java - 测试后运行 Dataprovider
- firebase - Detected an object of type "Timestamp" that doesn't match the expected instance
- android - 使用已编译的 C 文件为 Android 创建一个 nativescript 插件
- mysql - Mysql:在表中添加列的值
- eclipse - How to make eclipse cdt UI Blocking code run in background and show the result in an editor after finishing the run?