Estou aprendendo java (Servlets)
Pessoal ja consegui fazer uma servlet q pega os dados da tabela exibe dentro de jsp
Mais não consigo de jeito nenhum inserir um registro que vem de um jsp
Alguem por me ajudar por favor???
Não consigo encontrar este erro…
aparece este erro :
-------------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: br/com/caelum/jdbc/dao/ContatoDAO
br.com.caelum.servlet.teste4.doPost(teste4.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
-------------------------------------------------------------------------------------
Minha servlet :
package br.com.caelum.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.jdbc.dao.ContatoDAO;
import br.com.caelum.jdbc.modelo.Contato;
/**
* Servlet implementation class for Servlet: teste4
*
*/
public class teste4 extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public teste4() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("nome");
String email = request.getParameter("email");
String endereco = request.getParameter("endereco");
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
try {
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
} catch (SQLException e) {
throw new ServletException(e);
}
}
}
-------------------------------------------------------------------------------------
Meu jsp :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="teste4.java" method="post">
<input type="text" name="nome" value=""/>
<input type="text" name="email" value=""/>
<input type="text" name="endereco" value=""/>
<input type="submit" value="Enviar"/>
</form>
</body>
</html>
-------------------------------------------------------------------------------------
meu DAO:
package br.com.caelum.jdbc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDAO {
private Connection connection;
public ContatoDAO(Connection con){
this.connection = con;
}
public ContatoDAO() throws SQLException {
this.connection = ConnectionFactory.getConnection();
}
public void adiciona(Contato contato) throws SQLException {
// prepared Statement pra inserção
PreparedStatement stmt = this.connection.prepareStatement("INSERT " +
"INTO " +
"contatos (nome, " +
"email, " +
"endereco) " +
"VALUES " +
"(?,?,?)");
//seta os valores
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
//execute
stmt.executeUpdate();
stmt.close();
}
public void remover(Contato registro) throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("DELETE " +
"FROM " +
"contatos " +
"WHERE " +
"id=?");
stmt.setLong(1, registro.getId());
stmt.execute();
stmt.close();
}
public List<Contato> getLista() throws SQLException {
PreparedStatement stmt = this.connection.prepareStatement("SELECT " +
"* " +
"FROM " +
"contatos");
ResultSet rs = stmt.executeQuery();
List<Contato> list = new ArrayList<Contato>();
while (rs.next()){
//criando o objeto Registro
Contato registro = new Contato();
registro.setNome(rs.getString("nome"));
registro.setEmail(rs.getString("email"));
registro.setEndereco(rs.getString("endereco"));
//adicionando o objeto à lista
list.add(registro);
}
rs.close();
stmt.close();
return list;
}
public List<Contato> pesquisar(Contato contato) throws SQLException{
PreparedStatement stmt = this.connection.prepareStatement("SELECT " +
"* " +
"FROM " +
"contatos " +
"WHERE " +
"id=?");
stmt.setLong(1, contato.getId());
ResultSet rs = stmt.executeQuery();
List<Contato> list = new ArrayList<Contato>();
while (rs.next()){
//criando o objeto Registro
Contato registro = new Contato();
registro.setNome(rs.getString("nome"));
System.out.println(registro.getNome());
registro.setEmail(rs.getString("email"));
registro.setEndereco(rs.getString("endereco"));
//adicionando o objeto à lista
list.add(registro);
}
rs.close();
stmt.close();
return list;
}
}
-------------------------------------------------------------------------------------
meu bean:
package br.com.caelum.jdbc.modelo;
public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;
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 getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
-------------------------------------------------------------------------------------e por fim rsrsrs … Meu web.xml :
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
treinamento</display-name>
<servlet>
<description>
</description>
<display-name>
OlaMundo</display-name>
<servlet-name>OlaMundo</servlet-name>
<servlet-class>
br.com.caelum.servlet.OlaMundo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>OlaMundo</servlet-name>
<url-pattern>/OlaMundo</url-pattern>
</servlet-mapping>
<servlet>
<description>
</description>
<display-name>
TestaParametros</display-name>
<servlet-name>TestaParametros</servlet-name>
<servlet-class>
br.com.caelum.servlet.TestaParametros</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
TestaErro</display-name>
<servlet-name>TestaErro</servlet-name>
<servlet-class>
br.com.caelum.servlet.TestaErro</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
AdicionaContato</display-name>
<servlet-name>AdicionaContato</servlet-name>
<servlet-class>
br.com.caelum.servlet.AdicionaContato</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
ADD</display-name>
<servlet-name>ADD</servlet-name>
<servlet-class>
br.com.caelum.servlet.ADD</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
teste</display-name>
<servlet-name>teste</servlet-name>
<servlet-class>
br.com.caelum.servlet.teste</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
teste4.java</display-name>
<servlet-name>teste4.java</servlet-name>
<servlet-class>
br.com.caelum.servlet.teste4</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestaParametros</servlet-name>
<url-pattern>/TestaParametros</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TestaErro</servlet-name>
<url-pattern>/TestaErro</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AdicionaContato</servlet-name>
<url-pattern>/AdicionaContato</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ADD</servlet-name>
<url-pattern>/ADD</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>teste</servlet-name>
<url-pattern>/teste.java</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>teste4.java</servlet-name>
<url-pattern>/teste4.java</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
MUITTTOO OBRIGADUUUUU