Итак, я создал новый «Динамический веб-проект» в Eclipse IDE (2019-09 R 4.13.0). Я назвал проект "MyProject". При создании этого проекта я указал целевую среду выполнения Apache Tomcat 9.0 и версию динамического веб-модуля 4.0.
Для проекта и в разделе «Java Resources / src» я создал простой сервлет. Я назвал сервлет "ТестСервлет". И для этого сервлета я использую аннотацию @WebServlet ("/ TestServlet"). Код сервлета ниже.
Когда я щелкаю правой кнопкой мыши по классу сервлетов «TestServlet» из проводника проекта Eclipse и выбираю «Запуск от имени» -> «Выполнить на сервере», Eclipse успешно открывает свой встроенный браузер.
Однако здесь я думаю, что есть проблема.
Браузер Eclipse открывается на http://localhost:8080/MyProject/. Это поведение, которое я мог бы ожидать увидеть, если бы я нажал Run As-> Run on Server из папки проекта / MyProject. Но я нажал Run As-> Run on Server из класса TestServlet в / MyProject / Ресурсы Java / src / TestServlet.java. Поэтому я ожидаю, что браузер Eclipse откроется на http://localhost:8080/MyProject/TestServlet.
Я не прав по этому поводу?
Я работаю на Tomcat 9 и JRE 1.8.
Обратите внимание, чтоесли я вручную наберу "http://localhost:8080/MyProject/TestServlet" в качестве URL-адреса в браузере Eclipse, сервлет будет работать, как и ожидалось.
Любая помощь, выясняющая это, приветствуется!
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());
}
}