Pessoal, boa noite.
Estou desenvolvendo uma pequena aplicação para um trabalho da universidade utilizando Java e Servlets. Estou em um processo bem básico, o de chamar um servlet através de um botão. Mas, ao tentar acessar o servlet, o Tomcat sempre retorna o erro 404 “The requested resource [/prog3Avaliacao2/salvar] is not available” As outras páginas estão sendo acessadas normalmente pelo servidor. Alguém poderia me indicar uma solução?
O código da página do formulário que está chamando o servlet é essa:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/estilo.css">
<title>Cadastro de novos projetos</title>
</head>
<body>
<header>
<div class="container-fluid">
<div class="row">
<div class="col" id="logo-cabecalho">
<div class="media">
<img src="imagens/logo-ifrs.jpg" alt="Logo do IFRS">
</div>
</div>
<div class="col-9" id="nav-cabecalho">
<a href="#">
<img src="imagens/logout.png" alt="ícone de sair">
Sair
</a>
</div>
</div>
</div>
</header>
<div class="container-fluid">
<div class="row" id="row-principal">
<div class="col" id="menu-container">
<ul class="nav flex-column" id="menu-navegacao">
<li class="nav-item">
<a class="nav-link" href="index.html">
<img src="imagens/home.png" alt="Home">
Home
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="projetos.html">
<img src="imagens/new.png" alt="Projetos">
Projetos
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="bolsistas.html">
<img src="imagens/group.png" alt="Bolsistas">
Bolsistas
</a>
</li>
</ul>
</div>
<div class="col-9" id="conteudo-principal">
<h1>Cadastro de novos projetos</h1>
<hr>
<form action="salvar" method="post">
<div class="form-group">
<label for="tituloProjeto">Título do Projeto</label>
<input type="text" class="form-control" id="tituloProjeto" value="">
</div>
<div class="form-group">
<label for="resumoProjeto">Resumo do Projeto</label>
<textarea class="form-control" id="resumoProjeto" rows="2"></textarea>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="cargaHorariaProjeto">Carga Horária</label>
<input type="text" class="form-control" id="cargaHoraria" value="">
</div>
<div class="form-group col-md-6">
<label for="modalidadeProjeto">Modalidade</label>
<input type="text" class="form-control" id="modalidadeProjeto" value="">
</div>
</div>
<div class="form-group">
<label for="emailProjeto">E-mail Projeto</label>
<input type="email" class="form-control" id="emailProjeto" value="">
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="dataInicioProjeto">Data de Início das Atividades</label>
<input type="date" class="form-control" id="dataInicioProjeto" value="">
</div>
<div class="form-group col-md-6">
<label for="dataFinalProjeto">Data de Término das Atividades</label>
<input type="date" class="form-control" id="dataFinalProjeto" value="">
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary" value="Salvar">Salvar</button>
<button type="reset" class="btn btn-primary" value="Cancelar">Cancelar</button>
</div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
E o código do servlet é esse:
package pacote;
import java.io.IOException;
import java.io.PrintWriter;
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(name = "salvar", urlPatterns = {"/salvar"})
public class salvar extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet salvar</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet salvar at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}