Manter objeto entre requisições

1 resposta
M

Olá. Preciso da ajuda da comunidade Java.

Necessito manter um objeto em mais de uma requisição.

Por exemplo, monto um objeto num Servlet1 mando para uma JSP1. Nesta JSP1 necessito enviar para um outro Servlet2 que deve recuperá-lo e enviar novamente para outra JSP2.

Vejam como estou fazendo:
Monto um objeto “obj1” no “Servlet1” e coloco este objeto “obj1” na requisição através do método request.setAttribute(“obj1”,obj1). No fim do Servlet faço um forward para um JSP1.
Na JSP1 consigo recuperar o obj1 normalmente através do método request.getAttribute(“obj1”,obj1).
Porém, preciso enviar novamente este obj1 para o “Servlet2”. Mas quando chega no Servlet2 o obj1 está nulo.

Obs.: Não posso usar cookies nem Sessão, pois o usuário a qualquer momento pode acionar outra funcionalidade do sistema e este objeto estará na sessão. Estando na sessão ao voltar na JSP1 os dados serão recuperados e não deveriam. O ideal é manter este objeto nas requisições.

1 Resposta

Adolfo_Rodrigues

Mas se o cara vai acionar outra funcionalidade, provavelmente ele não vai alterar o objeto que você está mantendo na sessão. De qualquer forma, você pode sempre verificar se existe o objeto na sessão antes de fazer qualquer coisa. Acho que dá pra fazer o que você quer usando a session sim; basta você pensar melhor no funcionamento deste recurso.

BTW, caso queira fazer com escope de request, você vai ter que "montar’ o objeto a cada requisição que você for fazer. Mais ou menos assim:

JSP1 -> monta objeto a partir dos dados da tela1 -> faz o request para o servlet 1 -> trabalha -> faz o forward
JSP1 -> monta o objeto a partir dos dados da tela1 -> faz o request para o servlet 2 -> trabalha -> faz o forward

Criado 14 de fevereiro de 2008
Ultima resposta 14 de fev. de 2008
Respostas 1
Participantes 2