Não apresenta erro. O servidor apenas para. Não enviei as classes do trabalho porque são muitas, mas tem essas outras aqui, que também ocorre a mesma coisa.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
fj21-agenda
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
java.lang.Exception
/erro.html
<!DOCTYPE html>
Adiciona Contatos
Adidiona Contatos
Nome:
E-mail:
Endereço:
Data Nascimento:
Classe AdicionaContatoServelt
package br.com.caelum.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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 br.com.caelum.jbdc.dao.ContatoDao;
import br.com.caelum.jdbc.modelo.Contato;
@SuppressWarnings(“serial”)
@WebServlet("/adicionaContato")
public class AdicionaContatoServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String nome= "Luis";//request.getParameter("nome");
String endereco ="Luis"; //request.getParameter("endereco");
String email = "Luis";//request.getParameter("email");
String dataEmTexto = "12/01/1997";//request.getParameter("dataNascimento");
Calendar dataNascimento = null;
try{
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
}catch(java.text.ParseException e){
out.println("Erro na conversão da data");
return;
}
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDataNascimento(dataNascimento.getTimeInMillis());
contato.setId(1);
ContatoDao daoContato = new ContatoDao();
daoContato.adiciona(contato);
out.println("<html>");
out.println("<head>");
out.println("<title>êhhhh</title>");
out.println("</head>");
out.println("<body>");
out.println("Contato "+ contato.getNome()+" adicionado com sucesso.");
out.println("</body>");
out.println("</html>");
}
}
Classe Contato
package br.com.caelum.jdbc.modelo;
import java.util.Calendar;
public class Contato {
private long id;
private String nome;
private String email;
private String endereco;
private long dataNascimento;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
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 long getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(long dataNascimento) {
this.dataNascimento = dataNascimento;
}
Classe ContatoDao
package br.com.caelum.jbdc.dao;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import br.com.caelum.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDao {
public void adiciona(Contato contato){
Connection connection= ConnectionFactory.getConexao();
String sql= "insert into contatos (nome,email,endereco,dataNascimento) values(?,?,?,?)";
try{
PreparedStatement stmt= connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setLong(4, contato.getDataNascimento());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public List<Contato> getLista(){
Connection connection= ConnectionFactory.getConexao();
try{
PreparedStatement stmt = connection.prepareStatement("select *from contatos");
ResultSet rs= stmt.executeQuery();
List<Contato> contatos = new ArrayList<Contato>();
while(rs.next()){
Contato contato= new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
Calendar data= Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data.getTimeInMillis());
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void altera(Contato contato){
Connection connection= ConnectionFactory.getConexao();
String sql= "update contatos set nome=?, email=?, endereco=?," +
"dataNascimento=? where id=?";
try{
PreparedStatement stmt= connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setLong(4, contato.getDataNascimento());
stmt.setLong(5, contato.getId());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void remove(Contato contato){
Connection connection= ConnectionFactory.getConexao();
String sql= "delete from contatos where id=?";
try{
PreparedStatement stmt= connection.prepareStatement(sql);
stmt.setLong(1, contato.getId());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
package br.com.caelum;
import java.sql.Connection;
import java.sql.DriverManager;
public class ConnectionFactory {
private static Connection[] conexao = new Connection[10];
private static boolean conectou = false;
private static int pos = 0;
private ConnectionFactory(){
}
public static Connection getConexao(){
if (pos == 10){
pos = 0;
}
if (!conectou) {
try {
Class.forName("com.mysql.jdbc.Driver");
for (int i = 0; i < 10; i++){
conexao[i] = DriverManager.getConnection("jdbc:mysql://localhost:3306/fj21", "root","");
}
} catch (Exception e) {
System.exit(1);
}
conectou = true;
System.out.println("Conectou!");
}
return conexao[pos++];
}
}