Alguém pode me ajudar com esse código? Sou iniciante em Java, e estou aprendendo Java para Web. Estou usando a apostila FJ-21 da Caelum, que na minha opinião é ótima. Fiz algumas alterações no código pois estou implementando uma mini loja, estou com problemas para converter a data, e algumas outras coisas que não estou entendendo. Ex: Não sei se minha conexão está estabelecendo corretamente, gostaria de saber também, como eu devo mapear tudo isso no web.xml.
Se alguém que ja passou por isso puder me ajuda eu ficarei muito grato! 
Abraço!
[b]Estou usando Eclipse Indigo, MySQL 5.5 e o connector mysql-connector-java-5.1.15 e Apache Toncat 7
Mensagem de erro:
HTTP Status 500 - :?: :?: :?:
Tipo de relatório de exceção
mensagem
Descrição O servidor encontrou um erro interno () que o impediu de cumprir este pedido.
exceção
java.lang.NullPointerException
java.text.SimpleDateFormat.parse (SimpleDateFormat.java: 1235)
java.text.DateFormat.parse (DateFormat.java: 335)
Controle.AdicionaCliente.service (AdicionaCliente.java: 47)
javax.servlet.http.HttpServlet.service (HttpServlet.java: 722)
Nota O rastreamento de pilha completa da causa raiz está disponível no Tomcat/7.0.19 Apache logs.
Apache Tomcat/7.0.19
Código com erro Servlet:[/b]
package Controle;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
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 Modelo.Clientes;
@WebServlet("/AdicionaCliente")
public class AdicionaCliente extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Busca o whiter
PrintWriter out = response.getWriter();
//Buscando os parametros no request
String nome = request.getParameter("nome");
String email = request.getParameter("email");
String endereco = request.getParameter("endereco");
String cep = request.getParameter("cep");
String bairro = request.getParameter("bairro");
String cidade = request.getParameter("cidade");
String estado = request.getParameter("estado");
String pais = request.getParameter("pais");
String complemento = request.getParameter("complemento");
String telefone = request.getParameter("telefone");
String dataTexto = request.getParameter("data_cadastro");
String senha = request.getParameter("senha");
Calendar data_cadastro = null;
//Fazendo a conversão da data.
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataTexto);
data_cadastro = Calendar.getInstance();
data_cadastro.setTime(date);
} catch (ParseException e) {
out.println("Erro na conversão da Data!");
return; // Para a execução do Metodo
}
//Monta um objeto clientes.
Clientes clientes = new Clientes();
clientes.setNome(nome);
clientes.setEmail(email);
clientes.setEndereco(endereco);
clientes.setCep(cep);
clientes.setBairro(bairro);
clientes.setCidade(cidade);
clientes.setEstado(estado);
clientes.setPais(pais);
clientes.setComplemento(complemento);
clientes.setTelefone(telefone);
clientes.setData_cadastro(data_cadastro);
clientes.setSenha(senha);
Cliente_DAO dao = new Cliente_DAO();
dao.adiciona(clientes);
//Imprime na tela.
out.println("<html>");
out.println("<body>");
out.println("Cliente " + clientes.getNome() + " Adicionado com sucesso!");
out.println("</body>");
out.println("</html>");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
Classe Cliente DAO:
package Controle;
import java.sql.Connection;
import java.sql.Date;
import java.sql.SQLException;
import Modelo.Clientes;
public class Cliente_DAO {
private Connection connection;
public Cliente_DAO(){
this.connection = new Fabrica_Conexao().getConnection();
}
public void adiciona(Clientes clientes){
String sql = "insert into clientes(nome, email, endereco, cep, " +
"bairro, cidade, estado, pais, complento, telefone, data_cadastro, senha) values (?,?,?,?,?,?,?,?,?,?,?,?)";
try{
java.sql.PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1,clientes.getNome());
stmt.setString(2,clientes.getEmail());
stmt.setString(3, clientes.getEndereco());
stmt.setString(4,clientes.getCep());
stmt.setString(5, clientes.getBairro());
stmt.setString(6, clientes.getCidade());
stmt.setString(7, clientes.getEstado());
stmt.setString(8, clientes.getPais());
stmt.setString(9, clientes.getComplemento());
stmt.setString(10, clientes.getTelefone());
stmt.setDate(11, new Date(clientes.getData_cadastro().getTimeInMillis()));
stmt.setString(12, clientes.getSenha());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
Classe que fabrica as conexões:
package Controle;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
public class Fabrica_Conexao {
public Connection getConnection(){
System.out.println("Conectando ao Banco");
try{
return DriverManager.getConnection("jdbc:mysql://localhost/loja_virtual","root","");
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
Classe JavaBeans Cliente:
package Modelo;
import java.util.Calendar;
public class Clientes {
private long id_cliente;
private String nome;
private String email;
private String endereco;
private String cep;
private String bairro;
private String cidade;
private String estado;
private String pais;
private String complemento;
private String telefone;
private Calendar data_cadastro;
private String senha;
public long getId_cliente() {
return id_cliente;
}
public void setId_cliente(long id_cliente) {
this.id_cliente = id_cliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getPais() {
return pais;
}
public void setPais(String pais) {
this.pais = pais;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public Calendar getData_cadastro() {
return data_cadastro;
}
public void setData_cadastro(Calendar data_cadastro) {
this.data_cadastro = data_cadastro;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
