Olá pessoal,
Mas uma vez to queimando a cabeça tentando fazer com que a servlet rode o que eu quero.
Montei uma aplicação onde tenho duas páginas jsp, uma com um formulário e outra que quando os dados forem inseridos a servlet redirecione para ela, pois bem, mando rodar num da nhum erro, porém no browser só fica o caminho da servlet e uma página em branco, e no banco de dados num insere nenhum valor. vejam os códigos:
Classe PessoaDB (Classe que faz o Insert)
/**
* Classe de Exemplo de Conexão e Comandos com o Banco de Dados PostgreSQL
* @author Paulo Henrique Peres
*/
public class PessoaDB {
// Atributos da Classe
private int codigo;
private String nome;
private String email;
// Atributos para a conexão e comandos DDL
java.sql.Connection conn = null;
java.sql.ResultSet rs = null;
java.sql.Statement st = null;
// Parametros para conexão
String driver = "org.postgresql.Driver"; // Driver de Conexão
String usuario = "Paulo"; // Nome do Usuário
String senha = ""; // Senha do Usuário
String url = "jdbc:postgresql://localhost/Agenda"; // URL para Conexão
/**
* Métodos Set e Get da Classe
*/
public void setCodigo (int codigo) {
this.codigo = codigo;
}
public int getCodigo (){
return codigo;
}
public void setNome (String nome){
this.nome = nome;
}
public String getNome (){
return nome;
}
public void setEmail (String email){
this.email = email;
}
public String getEmail (){
return email;
}
/**
* Métodos de INSERT, UPDATE, DELETE e SELECT no Banco de Dados
*/
// Método de INSERT
public void InsertSQL (){
// Atributos do Método
String sql;
// Montando o comando SQL
sql = "INSERT INTO Agenda (cod_pessoa, nome_pessoa, email_pessoa)" +
"VALUES (" + codigo + ",'" + nome + "','" + email +"')";
// Efetuando a Conexão e a execução do comando SQL
try {
// Conectando
Class.forName(driver);
conn = java.sql.DriverManager.getConnection(url,usuario, senha);
// Criando um Statement
st = conn.createStatement();
// Efetuando o Comando
st.executeUpdate(sql);
// Fechando a Conexão
st.close();
conn.close();
} catch (Exception e){
e.printStackTrace();
}
}
}
Servlet
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CadastraPessoa extends HttpServlet {
// Atributos da Servlet
PessoaDB pessoa = new PessoaDB();
private String target = "sucesso.jsp";
/** Incializando a Servlet
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
// Método doGet
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
// Método doPost
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Setando os atributos da classe Pessoa
pessoa.setCodigo(Integer.parseInt(request.getParameter("codigo")));
pessoa.setNome(request.getParameter("nome"));
pessoa.setEmail(request.getParameter("email"));
try{
// Inserindo os dados
pessoa.InsertSQL();
// Redirecionando para a página de sucesso do cadastro
ServletContext context = getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher(target);
dispatcher.forward(request, response);
}
catch (Exception e){ e.printStackTrace();}
}
/** Destruindo a Servlet
*/
public void destroy() {
}
}
Página onde está o form de cadastro
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
<head><title>JSP Page</title></head>
<body>
<form name="CadastraPessoa" action="CadastraPessoa" method="POST">
<p> Código: <input type="text" name="codigo" size="10">
<p> Nome..: <input type="text" name="nome" size="50">
<p> E-mail: <input type="text" name="email" size="30">
<input name="Gravar" type="submit" value="Submit">
</form>
</body>
</html>
Já num sei mais o q fazer, se pelo menos mostrasse algum erro, mas nem isso.
Valeu,
Paulo