Olá, estou utilizando o livro Use a cabeça Servlets e Jsp e estou tendo problemas no primeiro exemplo do capítulo 3.
Já tentei rodar a aplicação tanto no tomcat 6(recomendado pelo livro) e no tomcat 9 e sempre recebo HTTP Status 404 - /SelectBeer.do quando a página que contém o formulário me redireciona para a página que deveria conter a servlet.
Obs: A página que contém o formulário funciona corretamente.
Desde já agradeço.
Minha estrutura de diretórios é a seguinte: apache-tomcat-9.0.0.M10\webapps\Beer-V1\WEB-INF\classes\com\example\web (local onde a servlet está)
Fiz a compilação da classe através do seguinte código: javac -classpath C:\Users\PC\desktop\apache-tomcat-9.0.0.M10\lib\servlet-api.jar; BeerSelect.java
Meu código web.xml está da seguinte forma e no diretório apache-tomcat-9.0.0.M10\webapps\Beer-V1\WEB-INF:
<web-app 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"
version="4.0">
<servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect </servlet-class>
</servlet>
<servlet-maping>
<servlet-name>Ch3 Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-maping>
</web-app>
O código do BeerSelect.java está assim:
package com.example.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html>");
out.println("<body>");
out.println("Beer Selection Advice <br>");
String c = req.getParameter("color");
out.println("<br> Got beer color" + c);
out.println("</body>");
out.println("</html>");
}
}
O html está assim (diretório: \apache-tomcat-9.0.0.M10\webapps\Beer-V1) :
<html>
<head>
</head>
<body>
<form method="post"
action="/SelectBeer.do">
<p>Select beer characteristics</p>
<p>Color:</p>
<select name="color" size="1">
<option value="light">light</option>
<option value="amber">amber</option>
<option value="brown">brown</option>
<option value="dark">dark</option>
</select>
<br>
<br>
<center>
<input type="submit">
</center>
</form>
</body>
</html>