Я только начал изучать технологию сервлетов и сейчас пытаюсь создать очень простое веб-приложение. Всего несколько страниц, пробую эту штуку. Я могу перейти на стартовую страницу /index.html, но для другой части получаю код состояния HTTP 404:
Сообщение: Запрошенный ресурс [/first] недоступен
Описание. Исходный сервер не нашел текущего представления целевого ресурса или не желает раскрывать его существование.
<?xml version = "1.0" encoding = "UTF-8"?>
<web-app version = "4.0" xmlns = "http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
</web-app>
package 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;
import java.io.PrintWriter;
@WebServlet("/first")
public class FirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("Welcome to servlet");
pw.println("</body>");
pw.println("</html>");
pw.close();
}
}
Контекстный путь — /. Я попробовал urlPatterns в WebServlet аннотации. Я пробую это в сообществе IntelliJ IDEA, с плагином Smart Tomcat, с установленным Tomcat 10.1.24 и с Java 11. Я запустил mvn clean package.
После запуска приложения я могу получить доступ к index.html с помощью http://localhost:8080/, но не могу получить доступ к http://localhost:8080/first.
Я пытаюсь найти решение в течение некоторого времени, но мне не удалось этого сделать. Я тоже читал темы здесь (по крайней мере пытался), но не нашел. Из образа Dockerfile я попробовал это с Tomcat 9.0.89, но получил тот же код состояния HTTP / 404.
Хочу попросить вашей помощи в этом вопросе. Если я могу предоставить какую-либо полезную дополнительную информацию, пожалуйста, дайте мне знать.
Заранее большое спасибо за вашу помощь.


Этот код представляет собой очень старую технологию сервлетов и не работает с Tomcat 10.x. Вы можете использовать его с Tomcat 9 или более ранней версией.
Где-то я сделал что-то не так, когда пробовал это с Dockerfile. Но теперь я попробовал и там это работает. Я не знаю, как я могу установить там контекстный путь к / . Но это другой вопрос. Большое спасибо за ваш ответ.