formulário não acha servlet

bom gente, olá a todos. estou tentando fazer com que um formulário dispare a execução de um servlet. Tenho vários outros formulários que fazem a mesma coisa, mas eles não dão erro só esse que vou mostrar para vocês.

Servlet:

[code]package controller;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;
import model.Aluno;
import model.Funcionario;
import model.Professor;
import model.Usuario;
import model.dao.AlunoDAO;
import model.dao.FuncionarioDAO;
import model.dao.ProfessorDAO;

public class ContCadastroServlet extends HttpServlet {

protected void contCadastro(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    try {
        
         //obtem as informações inseridas no formulário
         String matricula = request.getParameter("matricula");
         String nome = request.getParameter("nome");
         String cpfs = request.getParameter("cpf");
         String senha = request.getParameter("senha");
         String outraSenha = request.getParameter("outraSenha");
         String news = request.getParameter("newsletter");
         
         //converção para inteiro
         int cpf = Integer.parseInt(cpfs); 
         int newsletter = Integer.parseInt(news);
         
         
         //verifica se as senhas inseridas pelo usuário são iguais
         if ( senha.equals(outraSenha) )
         {
             //termina o cadastro do aluno
             if (matricula.equals("ALU"))
             {
                 //executa o segundo cadastro
                 Aluno alu = AlunoDAO.ContCadAluno(matricula, nome, cpf, senha, newsletter);
                 
                 //verifica se o cadastro foi realizado com sucesso ou não
                 if ( alu != null )
                 {
                     JOptionPane.showMessageDialog( null, "Cadastro realizado com sucesso!" );
                 }else
                 {
                     JOptionPane.showMessageDialog( null, "Não foi possível realizar o seu cadastro, por favor tente mais tarde!" );
                     response.sendRedirect("index.jsp");
                 }
                 
             //termina o cadastro do professor   
             }else if ( matricula.equals("PRO") )
             {
                 Professor prof = ProfessorDAO.contCadProfessor(matricula, nome, cpf, senha, newsletter);
                 
                 //verifica se o cadastro foi realizado com sucesso ou não
                 if ( prof != null )
                 {
                     JOptionPane.showMessageDialog( null, "Cadastro realizado com sucesso!" );
                 }else
                 {
                     JOptionPane.showMessageDialog( null, "Não foi possível realizar o seu cadastro, por favor tente mais tarde!" );
                     response.sendRedirect("index.jsp");
                 }
                 
             //termina o cadastro do funcionario    
             }else if ( matricula.equals( "FUN" ) )
             {
                 Funcionario func = FuncionarioDAO.contCadFuncionario(matricula, nome, cpf, senha, newsletter);
                 
                 //verifica se o cadastro foi realizado com sucesso ou não
                 if ( func != null )
                 {
                     JOptionPane.showMessageDialog( null, "Cadastro realizado com sucesso!" );
                     response.sendRedirect("indexAdmin.jsp");
                 }else
                 {
                     JOptionPane.showMessageDialog( null, "Não foi possível realizar o seu cadastro, por favor tente mais tarde!" );
                     response.sendRedirect("index.jsp");
                 }
             }
         }else
         {
             JOptionPane.showMessageDialog(null, "As senhas inseridas não são iguais.");
             response.sendRedirect("cadastroAluno.jsp");
         }
             
    }catch ( Exception e )
    {
        JOptionPane.showMessageDialog(null, "Erro no cadastro, por favor tente mais tarde!");
        e.printStackTrace();
    }finally {            
        out.close();
    }
}

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** 
 * Handles the HTTP <code>GET</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    contCadastro(request, response);
}

/** 
 * Handles the HTTP <code>POST</code> method.
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    contCadastro(request, response);
}

/** 
 * Returns a short description of the servlet.
 * @return a String containing servlet description
 */
@Override
public String getServletInfo() {
    return "Short description";
}// </editor-fold>

}
[/code]

formulário:

[code]

Nome completo:

                <input type="text" class="inp-form" name="nome"/></td>
		<td></td>
	</tr>
			<tr>
		<th valign="top">Matrícula:</th>
		<td>
        		
                <input type="text" class="inp-form" name="matricula" /></td>
		<td></td>
	</tr>
    		<tr>
		<th valign="top">CPF:</th>
		<td>
        		
                <input type="text" class="inp-form" name="cpf" /></td>
		<td></td>
	</tr>

		<th valign="top">Redefinir senha:</th>
		<td>
        <input type="text" class="inp-form-error" name="senha"/></td>
		<td>
		<div class="error-left"></div>
		<div class="error-inner">Mín. 8 Máx. 20 Caracteres</div>
        			<td></td>
	</tr>
           		<tr>
		<th valign="top">Repetir senha:</th>
		<td>
        		
                <input type="text" class="inp-form" name="outraSenha"/></td>
		<td></td>
	</tr>
	<tr>
	<th valign="top">Newsletter:</th>
	<td>	
                <p>
                  <!-- ESCOLHER CATEGORIA -->
                  <input name="Receber atualizações no email cadastrado" type="checkbox" value="atualizacoes" checked /> 
                  </p>
                <p>Receber atualizações para o email cadastrado </p></td>
	<td></td>
	</tr>

<tr>
	<th>&nbsp;</th>
	<td valign="top">
    <!-- BOTAO ENVIAR -->
    <input type="submit" value="" class="form-avancar"/>
        <!-- BOTAO RESETAR -->
		<input type="reset" value="" class="form-reset"  />
                    </form>[/code]

Na minha IDE (netbeans), não dispara exception nenhuma, mas o tomcat fala que o ContCadastroServlet (servlet mostrado), não está avaliado.

segue ai o print do erro:

Espero que você possam me ajudar, desde já mito grato! :slight_smile:

Você adicionou a Servlet no seu web.xml?

Abs,

Verifique a sua referencia no web.xml


	&lt;servlet-mapping&gt;
		&lt;servlet-name&gt;SeuServlet&lt;/servlet-name&gt;
		&lt;url-pattern&gt;/ContCadastroServlet&lt;/url-pattern&gt;
	&lt;/servlet-mapping&gt;

Falow

pow gente, eu andei o olhando o web.xml, e está tudo certinho, eu acho:

<servlet> <servlet-name>ContCadastro</servlet-name> <servlet-class>controller.ContCadastroServlet</servlet-class> </servlet>

<servlet-mapping> <servlet-name>ContCadastro</servlet-name> <url-pattern>/ContCadastro</url-pattern> </servlet-mapping>

Coloque a barra no seu form html action="/SeuServlet"
Fallow

Aqui está o topo do meu form:

<form id="cadastroAluno" name="cadastroAluno" action="ContCadastroServlet" method="post"> 
@WebServlet

deixa o descritor mais limpo.

[]

Faça como amigo disse e coloque assim:

    &lt;form id="cadastroAluno" name="cadastroAluno" action="/ContCadastroServlet" method="post"&gt;   

ajuste para

&lt;form id="cadastroAluno" name="cadastroAluno" action="/ContCadastroServlet" method="post"&gt;  

fallow

[quote]ajuste para
view plaincopy to clipboardprint?

fallow[/quote]

Pow cara, eu fiz isso e continuou a mesma coisa.

mostra seu web.xml

web.xml completa:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>ConfirmarEmailCadasdroServlet</servlet-name> <servlet-class>controller.RegistroServlet</servlet-class> </servlet> <servlet> <servlet-name>RegistroServlet</servlet-name> <servlet-class>controller.RegistroServlet</servlet-class> </servlet> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>controller.LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>GerenciamentoServlet</servlet-name> <servlet-class>controller.GerenciamentoServlet</servlet-class> </servlet> <servlet> <servlet-name>ContCadastro</servlet-name> <servlet-class>controller.ContCadastroServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ConfirmarEmailCadasdroServlet</servlet-name> <url-pattern>/ConfirmarEmailCadasdroServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>RegistroServlet</servlet-name> <url-pattern>/RegistroServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>GerenciamentoServlet</servlet-name> <url-pattern>/GerenciamentoServlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>ContCadastro</servlet-name> <url-pattern>/ContCadastro</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>

faz um teste, chama seu servlet direto do browser tipo

http://host:port/context-root[/url-pattern]

no meu caso:
localhost:8080/appweb/ContCadastroServlet

e ve se ele chega na sua servlet.

Verifica os nomes das classes.

<form id="cadastroAluno" name="cadastroAluno" action="/ContCadastro" method="post"> 

segue uma dica:

mapeando servlet

isto aqui é para dar um nome a sua servlet para o descritor(web.xml) poder achar o mapeamento dele e aqui vc informa qual a classe vai responder a requisição

<servlet>  
        <servlet-name>ContCadastro</servlet-name>  
        <servlet-class>controller.ContCadastroServlet</servlet-class>  
    </servlet> 

isto aqui ele junta o nome que vc usou para mapear a servlet com a url que sua aplicação vai utilizar para poder achar a servlet. OK

<servlet-mapping>  
        <servlet-name>ContCadastro</servlet-name>  
        <url-pattern>/ContCadastro</url-pattern>  
    </servlet-mapping> 

[quote]egue uma dica:

mapeando servlet

isto aqui é para dar um nome a sua servlet para o descritor(web.xml) poder achar o mapeamento dele e aqui vc informa qual a classe vai responder a requisição
view plaincopy to clipboardprint?

<servlet> <servlet-name>ContCadastro</servlet-name> <servlet-class>controller.ContCadastroServlet</servlet-class> </servlet>

isto aqui ele junta o nome que vc usou para mapear a servlet com a url que sua aplicação vai utilizar para poder achar a servlet. OK
view plaincopy to clipboardprint?

<servlet-mapping> <servlet-name>ContCadastro</servlet-name> <url-pattern>/ContCadastro</url-pattern> </servlet-mapping>
[/quote]

mas rjbcordeiro, está exatamente assim no meu web.xml