Erro ao Salvar através de uma Servlet... HELP!

Boa noite galera! não sei mais o que faço com esse problema!!!
nesse projeto tenho o driver msql-connector… na pasta web-inf/lib adicionado, fiz uma classe para testar a conexão e inserção de dados e gravou de boa, agora quando tento salvar um contato atraves de uma servlet da esse problema HTTP Status - 500… na pagina e esse erro que segue abaixo no console do eclipse. Alguém pode me ajudar!!!

20/09/2011 16:23:46 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet AdicionaContatoServlet threw exception
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:11)
at br.com.caelum.jdbc.dao.ContatoDAO.(ContatoDAO.java:14)
at br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:9)
… 15 more

Insert title here Nome:
E-mail:
Endereço:
Data Nascimento:

view plaincopy to clipboardprint?
package br.com.caelum.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.caelum.jdbc.dao.ContatoDAO;
import br.com.caelum.jdbc.modelo.Contato;

public class AdicionaContatoServlet extends HttpServlet {

protected void service(HttpServletRequest request, HttpServletResponse response)   
                        throws IOException, ServletException {  
    PrintWriter out = response.getWriter();  
      
    String nome = request.getParameter("nome");  
    String endereco = request.getParameter("endereco");  
    String email = request.getParameter("email");  
    String dataEmTexto = request.getParameter("DataNascimento");  
      
    Calendar dataNascimento = null;  
      
    //Fazendo a conversão da data  
    try {  
        Date date = new SimpleDateFormat("dd/MM/yyy").parse(dataEmTexto);  
        dataNascimento = Calendar.getInstance();  
        dataNascimento.setTime(date);  
    } catch(ParseException e) {  
        out.println("Erro de conversão da data");  
        return; //Para a execução do método  
    }  
      
    //Mostra um objeto contato  
    Contato contato = new Contato();  
    contato.setNome(nome);  
    contato.setEndereco(endereco);  
    contato.setEmail(email);  
    contato.setDataNascimento(dataNascimento);  
      
    //Salva o contato  
    ContatoDAO dao = new ContatoDAO();  
    dao.adiciona(contato);  
      
    // imprime o nome do contato que foi adicionado  
      
    out.println("<html>");  
    out.println("<body>");  
    out.println("Contato " + contato.getNome() + " adicionado com sucesso");  
    out.println("</body>");  
    out.println("</html>");  
}  

}

Fabrica de conexão
view plaincopy to clipboardprint?
package br.com.caelum.jdbc;
import java.sql.*;

public class ConnectionFactory {

public Connection getConnection() {  
    try {  
        System.out.println("Connect to database...");  
        return DriverManager.getConnection("jdbc:mysql://localhost/fj21", "root", "");  
    } catch(SQLException sqlException) {  
        throw new RuntimeException(sqlException);  
    }  
}  

}

objeto DAO
view plaincopy to clipboardprint?
package br.com.caelum.jdbc.dao;
import java.sql.;
import java.sql.Date;
import java.util.
;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;

public class ContatoDAO {
//Coneção com o banco de dados
private Connection connection;

//Fabrica a conexão com o banco mysql  
public ContatoDAO() {  
    this.connection = new ConnectionFactory().getConnection();  
}  
  
public void adiciona(Contato contato) {  
    String sql = "INSERT INTO contatos(nome, email, endereco, dataNascimento) VALUES(?,?,?,?)";  
      
    try {  
        //Objeto para Inserção no banco PreparedStatement passando a string sql  
        PreparedStatement stmt = connection.prepareStatement(sql);  
          
        stmt.setString(1, contato.getNome());  
        stmt.setString(2, contato.getEmail());  
        stmt.setString(3, contato.getEndereco());  
        stmt.setDate(4, new Date( contato.getDataNascimento().getTimeInMillis()) );  
          
        stmt.execute();  
        stmt.close();  
        System.out.println("Contato adicionado.");  
    } catch(SQLException sqlException) {  
        throw new RuntimeException(sqlException);  
    }  
}  

}

MEU WEB.XML
view plaincopy to clipboardprint?

<?xml version="1.0" encoding="UTF-8"?> fj21-agenda1 index.html index.htm index.jsp default.html default.htm default.jsp servletOiMundo br.com.caelum.servlet.OiMundo servletOiMundo /oi AdicionaContatoServlet br.com.caelum.servlet.AdicionaContatoServlet AdicionaContatoServlet /adicionaContato
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21 

Essa linha diz que não foi encontrado driver JDBC do mysql. Além de colocá-lo na pasta WEB-INF/lib, vc deve adicioná-lo ao build path da sua aplicação. Se estiver utilizando o Eclipse, clique com o direito sobre o driver e selecione a opção: ‘Add to Build Path’.

Olá talvez o erro foi o dito pelo amigo acima. Por favor antes de postar seu código ou o erro dado poste entre as tags code pois muita gente nem lê quando vê um código assim.

Desculpa me intrometer.

Obrigado!

hugo.hlcxcx, além de incluir a biblioteca na pasta web-inf/lib tb fiz o passo q vc falou do build path e mesmo assim na hora de salvar aparece a mesma coisa, estranho porque fiz uma classe para testar a conexao com o mysql e conectou de boa, mas atraves da servlet não vai de jeito nenhum. o pode ser…

Tentou informar a porta do mysql para a conexão?

jdbc:mysql:3306//localhost/fj21  

Tentou informar a porta do mysql para a conexão?
view plaincopy to clipboardprint?
jdbc:mysql:3306//localhost/fj21

Informei a porta desta maneira mais não resolveu, kra isso nao tem logica naum!!! tah fod…

Qual a versão do driver mysql?
Qual a versão do banco de dados?

versão do driver: mysql-connector-java-5.1.15-bin.jar
versão do MySql: 5.5

engraçado que atraves de uma classe conecta no banco, salva e talz… mais atraves da servlet não vai de jeito nenhum!