Passar ResultSet do Servlet para o JSP

5 respostas
ursp

E aí pessoal, blz??

Objetivo:
Abrir um frame (com 3 páginas) e as páginas utilizem a mesma informação na apresentação.
Exemplo: quero que as 3 páginas apresentem o nome do usuário.

Solução:
Para fazer isso estou guardando o nome do usuário na session, assim todas as paginas podem pegar a informação.

Problema:
Tenho um servlet que busca informações do banco de dados, e quero passar essas informações para os jsp.
Estou colocando o rs na session, mas os jsp não conseguem pegar de volta.

Erros:
Exception = java.sql.SQLException: Invalid state, the ResultSet object is closed.
No tomcat = java.io.NotSerializableException: org.apache.commons.dbcp.DelegatingResultSet
E
Cannot serialize session attribute qq for session …

Não é permitido colocar um ResultSet na session?
Existe uma maneira melhor para isso?

5 Respostas

F

Nunca faça algo desse tipo. ResultSet vc abre, pega o que quer, armazena em variáveis, fecha.

Abre la tua conexão, faz o select, pega o nome do cara do resultSet e joga numa String, fecha o resultSet e fecha a conexão com o banco.
Pega a String e joga na sessão, ou no request.

ursp

e aê Flin, blz?

o problema é que o Servlet faz a busca conforme dados informados no jsp de pesquisa, por esse motivo o rs pode ser de apenas 1 informação como 1000 !!!

Estava lendo e vi alguém dizer para jogar o resultado numa collection e passar ela na session.

Não posso passar ela pelo request pois todas as páginas do frame devem ter essa informação para trabalhar…

Desde já agradeço a ajuda…

F

O servlet faz consulta baseado no que veio do JSP…
Então tem um form no qual o cara preenche os dados da pesquisa, da submit e teu servlet recebe isso.

Seu servlet então deve fazer a pesquisa e jogar tudo que ta no resultSet numa lista / collection. Mas fecha o resultSet e a conexão.

ursp

exatamente…

vou tentar jogar o conteúdo em uma collection e passar na session.

vc sabe outra forma de passar essa informação para o jsp? O problema é que se trata de um frame e todas as paginas devem receber esse resultado.
No RequestDispatcher eu passo o frame e não somente 1 jsp, e dessa forma não funciona colocar a informação no request (request.setAttribute)

“RequestDispatcher rd = request.getRequestDispatcher(”/jsp/framePesquisa.jsp");"

valeu pela ajuda Flin!

F

Pra atualizar os outros 2 frames dinamicamente sem renderizar todo o jsp de novo vc vai ter q usar javascript. De cabeça não lembro como fazer.

Criado 20 de outubro de 2004
Ultima resposta 20 de out. de 2004
Respostas 5
Participantes 2