Passar Resultset de um servlet para outro

11 respostas
S

Galera.
Preciso passar um ResultSet de um SErvlet para outro.
Como faço isto? é possivel?

Silvio

11 Respostas

santoro

Popula um List e trabalha com ele em vez do ResultSet

santoro

Só completando dá uma olhadinha em DAO

S

Mas eu consigo jogar int num list?

the_negao

Faz um list de objetos como o santoro sugeriu… tipo:

LinkedList lista = new LinkedList(); while (resultSet.next()) { Produto produto = new Produto(); produto.setId(resultSet.getInt(1)); produto.setNome(resultSet.getString(2)); lista.add(produto); }

S

este seu produto é um bean?
Para passar ele de um servlet para outro vou ter que por na session?
Da pra passar via URL?

the_negao

Você pode jogar o lista em uma session e no outro servlet você pega essa lista e apaga a session utilizada… é uma solução!

Pode não ser a melhor, mas é uma opção.

S

mas entao qual seria a solucao + apropriada?
Como vou pegar a lista?

A

Silvio_java:
mas entao qual seria a solucao + apropriada?
Como vou pegar a lista?

Cara, isso é simples. A comunicação entre servlets se dá por meio da interface RequestDispatcher. Então a solução mais simples seria em 4 passos básicos (adapte para sua realidade). Assim:
//***************************************************
SERVLET 1

// coloque a lista na requisição. Não precisa colocar na sessão.
req.setAttribute(“lista”,minhaLista);

//adquira um apontamento para o segundo servlet ambos mapeado no web.xml
RequestDispatcher rd = req.getRequestDispatcher("/servlet/MeuServlet");

// encaminha efetivamente a requisição para o segundo servlet
rd.forward(req,res);
//****************************************************
SERVLET 2

// recupere a lista no segundo servlet
List minhaLista= req.getAttribute(“lista”);

// faça o que quiser com a lista…
//****************************************************

É isso!

Arierom

T

A pergunta faz bastante sentido porque em Windows e ASP é costumeiro usar um “disconnected recordset” para passar dados de um componente VB de/para o ASP. O equivalente do “disconnected recordset” seria um javax.sql.CachedRowSet.

amilhoranza

Exatamente o que o thingol disse. E outra pra quem saiu agora de linguagens como ASP, realmente fica nesse dilema.

T

Acho que muita gente usa listas de objetos etc. porque não é tão fácil assim gerar um CachedRowSet, e além disso é coisa recente no Java. (Eu mesmo nunca usei o tal do CachedRowSet).

Criado 3 de julho de 2006
Ultima resposta 5 de jul. de 2006
Respostas 11
Participantes 6