Я следую определенному курсу и пытаюсь создать сервлет с помощью Eclipse.
Я пробовал следующий сценарий ios:
- JRE: 8, 10, 11
- Dynami c веб-модуль версия: 3, 4
- Целевая среда выполнения: Apache Tomcat v9.0
Что произошло
В каждой комбинации вышеперечисленного сценарий ios, вот шаги, которые я выполнил: щелкните правой кнопкой мыши, чтобы создать новый веб-проект Dynami c -> щелкните правой кнопкой мыши, чтобы создать сервлет внутри пакета (не пакет по умолчанию) -> добавьте response.getWriter().println("<h1>Hello </h1>");
внутри метод doGet -> добавить servlet-api.jar в путь сборки -> Перезагрузить сервер -> Запустить класс сервлета на сервере
Во всех сценариях ios я получаю ошибку 404, как показано ниже :
Описание: исходный сервер не нашел текущего представления для целевого ресурса или не желает раскрывать его существование
Во всех сценариях ios, после того, как я случайно экспортировал проект в файл WAR, ошибка исчезла, и сервлет заработал.
Я пытаюсь создать новые проекты, чтобы проверить свою гипотезу, и та же ситуация продолжается.
Вот полный код сервлета в одном из сценариев ios:
package servlets;
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;
@WebServlet("/HelloWorld5")
public class HelloWorld5 extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloWorld5() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().println("<h1>Hello 5</h1>");
}
}
Я проверил следующий вопрос, но он не отвечает на мой вопрос
Сервлет возвращает «HTTP-статус 404. Запрошенный ресурс (/ servlet) недоступен»
Вопрос
Пожалуйста, помогите мне понять, почему все мои проекты не работают раньше и будут работать после их экспорта в файлы WAR.
Обновления на основе комментариев:
Запрошенный URL: http://localhost: 8080 / MyHelloServlet5 / HelloWorld5
ContextPath: введите описание изображения здесь