Problemas com resultset

8 respostas
P
Estou tendo problemas para atribuir valores de um recordset (


<%





a = rs.getString(1);





%>


com esta exceção na tela do browser:


"javax.servlet.ServletException: too many servlet includes"





Help Please.

8 Respostas

V

Plima,



Parece que o erro não está exatamente aí, coloque o código inteiro aqui para podermos avaliar.



Volnei Granado Munhoz :wink:

S
Antes de atribuir um valor, vc deve mover o cursor p/ o primeiro registro …


Além disso, vc fez include das classes java.sql.* ???





<%





if ( rs.next() ) {


   a = rs.getString(1);


}





%>
F

Ola,



enquanto esperamos cv colocar o resto do codigo para podermos te ajudar, deixo a dica:

Nao eh aconselhavel trabalhar com a camada de dados diretamente em uma visualizacao, ou seja, trabalhar com ResultSet no JSP.

Sempre aconelho as pessoas a utilizarem o padrao MVC mas, se vc relamente que usar duas camadas, procure usar JSTL (Java standart tag libs). Ela possui uma API que facilita bastante trabalhar com arquitetura 2 camadas.

Inclusive saiu uma materia sobre isto na ultima Java Magazine (num. 4). "Criando um mural com JSP e JSTL", por Fernando Anselmo. Pg. 31

P
Estou trabalhando com JSP a menos de 2 semanas, peço desculpas pelas falhas graves.





Segue abaixo o código.








<%<a class="mention" href="/u/page">@page</a> contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.<em>,<a href="http://java.io">java.io</a>.</em>" errorPage="" %>


<html>


<head>


<title>Teste1</title>


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


</head>


<%


	String url = "jdbc:odbc:teste";


	String stDriver = "sun.jdbc.odbc.JdbcOdbcDriver";


	Connection conn = null;


	Statement query = null;


	ResultSet rs = null;


	String a;





	try{             // tentativa de conexão


		Class.forName(stDriver).newInstance();


		conn = DriverManager.getConnection(url);


		query = conn.createStatement();


	}	


		catch(Exception e){ out.print("Erro: " + e); }





	try{  // execução da query


		rs = query.executeQuery("select * from Jsptut");


	} 	


		catch (SQLException e){ out.print("Erro: " + e); }








<body>


<%


	while(rs.next()) { //loop enquanto existir registros no rs


		a = rs.getString(1);


	%>


	<%=a %>


	<% } %>


</body>


</html>





<%	rs.close();


	query.close();


	conn.close();


%>







[ Esta mensagem foi editada por: plima em 18-02-2003 15:54 ]
V

Olá Plima, não sei se foi erro de digitação no fórum, mais está faltando um

" %> " para fechar o primeiro "<% ", outra coisa é que não é legal criar a conexão dentro de uma página Jsp, sei e do que é mais prático em fase de testes, porém não acustume-se.





Atenciosamente,

Volnei Granado Munhoz :wink:

P

Bom, o erro é de digitação… hehe



A idéia deste jsp é simplesmente pegar a informação do primeiro campo de cada registro e imprimir na tela, portanto, segui a seguinte sequência lógica:



Conectar -> Pegar informações -> Mostrar na Tela -> Desconectar



na parte de mostrar na tela, existe outra maneira que eu possa fazer isso???

por exemplo armazenando em um vetor, ou algo assim?



Valeu. :-o

V
Uma dica!





Coloque um try logo no começo do código e um catch no final para tratar as excessões de ServletException





<% try{ %>





–sua página–





<% }catch(ServletException se){


 se.getRootCause();


 se.printStackTrace();


 }%>





Agora lembre-se isso é só para testar, ele deverá imprimir uma mensagem diferente da atual, se acaso você não intender a mensagem coloque aqui para que possamos analisá-la.





Volnei <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/w.pngink.png?v=6" title=":wink:" class="emoji" alt=":wink:">
P

Consegui fazer as atribuições corretamente.



Passei a usar o TomCat, pois estava utilizando o Resin.



Grato

Paulo Lima

Criado 14 de fevereiro de 2003
Ultima resposta 19 de fev. de 2003
Respostas 8
Participantes 4