Conexão JSP + SERVLET +BANCO

é o seguinte pessoal estou utlizando o TOMCAT onde tenho uma página jsp que faz um request para um servlet.

Este servlet faz uma conexão com o banco e me retorna uma String como resultado a uma consulta ao banco HSQLDB.

Fiz uma Java Aplication só para ver se está funcionando corretamente a conexão com o banco e está funcionando, mas quanto tento usar este servlet chamado pelo JSP, não está retornando os registros.

Alguém poderia me ajudar ?

Eis meu código JSP

[code]<html>
<head>
<title>Teste de servlet</title>
</head>

<body>

Digite um texto e clique no botão para enviar ao servlet


<form name=“form1” method=“post” action=“http://localhost:8080/apteste/servlet/serv1”>
<input name=“texto” type=“text”>
<input type=“submit” name=“Submit” value=“Enviar”>
</form>
</body>
</html>
[/code]

Eis o meu código Servelt

[code]import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;

public class serv1 extends HttpServlet {
private Connection conn;
private Statement stm;
private ResultSet rs;
private String sql;

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException
{
//criado a saída
PrintWriter out = response.getWriter();
//pegando o texto digitado pelo usuário
String vTexto = request.getParameter(“texto”);
//escrevendo o texto digitado na saída
out.println("Você digitou: " + vTexto);
String s=conecta();
out.println("Você digitou: " +s);
//fechando a saída
out.close();
}

public String conecta()
{
      String s="";
  
  try{	  	  	
   Class.forName("org.hsqldb.jdbcDriver"); 
   conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/empresa", "sa", "");
   stm = conn.createStatement();
   
   sql="SELECT * FROM FRASE";
    rs=stm.executeQuery(sql);
   
   while(rs.next())
   {	   	 
	 s+=rs.getString(2) + "  ";	   	 
   	 
   }
   
  }
  catch (Exception e) {
	s+="erro ";
 }
  return s;
    }

}
[/code]

Este servlet só me traz a mensagem de erro.

Está configurado o driver de conexão no classpath.

Será que tem q configurar o drive em alguma configuração do TOMCAT ?

Valeu moçada.

qual o erro que ta dando??
vc colocou o driver de conexão no classpath???

[]'s

Para vc conseguir pegar o resultado na sua página jsp, vc deve setar os atributos no request…

Após o out.close(), coloque request.setAttribute(“qualquer nome”, objeto(no seu caso a String s))

Na página jsp que vai ser chamada, dá um request.getAttribute(“qualquer nome”) e utilize o atributo, atribuindo - o a uma String…

:wink:

O que está acontecendo é que está caindo no exception do meu try. Ou seja ele retorna as strings mas não consegue pegar nada do banco.

Está setado o hsqldb.jar no classpath já.

Mas não tem que configura tipo assim no server.xml alguma coisa ?
Ou em algum outro lugar ?

ta blz, mas qual a exception???
posta o stack do erro!!!
senão fica dificil…

[]'s

Como eu faço para jogar o printStackTrace para a saída no Servlet ?

é so printar o valor da variavel e.getMessage() ou e.printStackTrace, como vc faz com a variavel s…

e no console do tomcat tmb deve estar imprimindo o erro…

[]'s

da dando o seguinte erro.

java.lang.ClassNotFoundException: org.hsqld.jdbcDriver.

é problema de classpath, o driver não ta sendo achado.
dentro da sua aplicação, crie uma pasta lib dentro de WEB-INF e coloque o jar nela. é o primeiro lugar que o tomcat procura.
da uma tentada ae…

[]'s

Cara não rolou, continua caindo na exceção.

Joguei o hsqldb.jar no WEB-INF da minha aplicação e não deu certo

Meu classpath do sistema está assim

C:\jboss\jboss-4.0.0RC1\server\default\lib\javax.servlet.jar;c:\Arquivos de programas\Java\jdk1.5.0_01\lib\tools.jar;c:\tomcat\jakarta-tomcat-5.5.7\common\lib\servlet-api.jar;C:\jboss\jboss-4.0.0RC1\server\default\lib\hsqldb.jar

Valeu pela força.

Imprime a stack trace no console da aplicação,
posta tbm sua estrutura de diretórios, o seu web.xml, e a msg de erro que assim fica mais fácil

vc tem que colocar numa pasta lib dentro de WEB-INF.
o jboss não usa o classpath do siatema operacinal.
abre o jar e ve se essa classe ta la dentro.
a principio é isso, não tem misterio.

[]'s

Valeu moçada funcionou, fiz meu primeiro servlet com JSP acessando banco.

Valeu moçada eu só manjo de Java puro mesmo, agora estou migrando para o J2EE, mas ainda sou novatão na área.

Valeu este fórum é show.

Outra pergunta para cada aplicação que eu fizer eu vou ter q copiar o jar na pasta lib do WEB-INF ?

Não teria outra forma ?

Coloca o hsqldb.jar na pasta libs da sua aplicação se naum existir cria uma

[quote=raphael_nasci]Outra pergunta para cada aplicação que eu fizer eu vou ter q copiar o jar na pasta lib do WEB-INF ?

Não teria outra forma ?

[/quote]

tem uma pasta lib dentro do jboss, não lembro certo agora o caminho.
se vc colocar nessa pasta fica visivel a todas as aplicações.
da uma olhada na documentação no site do jboss.

[]'s