404 после использования аннотации сервлета @WebServlet(…)

#web #servlets #http-status-code-404 #java-ee-6

#сеть #сервлеты #http-статус-код-404 #java-ee-6

Вопрос:

Это снова я 🙁

Теперь я столкнулся с некоторыми проблемами.

В эти дни я изучаю сервлет с помощью ИДЕИ.

Я написал код и настроил Tomcat(версия 10.0.10) следующим образом:

 package yj.servlet;  import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;   @WebServlet(urlPatterns = {"/user"}) public class UserServlet extends HttpServlet {    @Override  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  System.out.println("来了个get请求");   }   @Override  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {  System.out.println("来了个post请求");  doGet(req, resp);  } }  

Конфигурация Tomcat 1

и

Конфигурация Tomcat 2

and to make sure, my Servlet version here

 lt;dependencygt;  lt;groupIdgt;javax.servletlt;/groupIdgt;  lt;artifactIdgt;javax.servlet-apilt;/artifactIdgt;  lt;versiongt;4.0.1lt;/versiongt;  lt;/dependencygt;  

also my web-app version is 3.1(which might mean @WebServlet() is allowed to use)

I think there should be something printed in tomcat’s output, like:

Running tomcat

But this page shows up:

404 стр.

когда я печатал http://localhost:8089/user в качестве адреса

итак, есть ли что-то не так с моим сервлетом и как я могу это сделать ..

Любая помощь будет оценена по достоинству!

Структура проекта здесь проста.

Структура проекта

Комментарии:

1. Похоже, что Tomcat 9.0 работает, но почему??

2. Ради Бога, я нахожу это… … Пользователи Tomcat 10 и далее должны знать, что в результате перехода с Java EE на Jakarta EE в рамках передачи Java EE в Eclipse Foundation основной пакет для всех реализованных API изменился с javax.* на jakarta.*. Это почти наверняка потребует изменений кода, чтобы приложения могли перейти с Tomcat 9 и более ранних версий на Tomcat 10 и более поздние версии. В настоящее время разрабатывается инструмент миграции, который поможет этому процессу. …. ….. это, вероятно, означает, что я должен изменить название пакетов…..

Ответ №1:

Я думаю, что нашел этот ответ на вопрос.

вместо

 import javax.servlet.ServletException; // ... and so on  

мы должны использовать

 import jakarta.servlet.ServletException; // ... and so on  

это потому, что что касается Tomcat (версияgt;=10)

, происходит передача Java EE в фонд Eclipse

поэтому пакеты должны быть переименованы.

Но эта проблема действительно смущает меня на некоторое время…

Спасибо за ваше время и желаю всем вам хорошего дня!