acho desnecessario criar um obj de sessao (gastar memoria no servidor) pra funcionalidade que quero usar essa transferencia…
caiofilipini
O problema é o seguinte: a request HTTP termina quando o servidor termina de processar os dados e monta toda a resposta que deve ser enviada ao cliente (ou alguma coisa parecida com isso).
Quando você usa ‘request.setAttribute(bla bla bla)’ no JSP, o servidor ainda não terminou de processar a request (o JSP é processado no servidor, e o resultado do processamento é enviado ao cliente, lembra?). Ou seja, você está colocando um mesmo atributo duas vezes na mesma request!
Acho que ficou meio confuso…
De qualquer forma, você vai mesmo precisar usar escopo de sessão. Insira o objeto na sessão, e depois de usá-lo no Servlet, remova-o. Isso não vai gastar tanta memória assim.
[]'s
betonit
O problema é o seguinte: a request HTTP termina quando o servidor termina de processar os dados e monta toda a resposta que deve ser enviada ao cliente (ou alguma coisa parecida com isso).
Quando você usa ‘request.setAttribute(bla bla bla)’ no JSP, o servidor ainda não terminou de processar a request (o JSP é processado no servidor, e o resultado do processamento é enviado ao cliente, lembra?). Ou seja, você está colocando um mesmo atributo duas vezes na mesma request!
Acho que ficou meio confuso…
De qualquer forma, você vai mesmo precisar usar escopo de sessão. Insira o objeto na sessão, e depois de usá-lo no Servlet, remova-o. Isso não vai gastar tanta memória assim.
[]'s
Pois é caio. Mas me deram uma idéia de utilizar uma solucao com input hidden (pq meu jsp eh um form) mas n to conseguindo, mesmo assim, recuperar o obj no servlet. Pq será?
Obrigado!
pcalcado
Não vai adiantar você colocar um objeto em request aqui, porque, como disse o Caio, o request vai ser eliminado assim que a JSP for processada, não deixando você a recuperar no servlet 2(lá é outro objeto request).
Faça algo assim: coloque o código do seu anunciante num campo HTML (ou passe direto na URL, depende do caso) e recupere no servlet 2:
AnucianteanuncianteAntigo=newAnunciante(); //Você também poderia pegar direto da persistência, depende do casoanuncianteAntigo.setCodigo(request.getParameter("codAnunciante"));
Guarde em escopo de sessão apenas objetos que devam ser persistente, não para trocar de uma página para um servlet, etc., para isso existe request
[]s
betonit
“pcalcado”:
“betonit”:
Servlet1:
pagina.jsp (Sendo que aki eu n tenho um “dispatcher”, pois este jsp é um form que acessa outra página através de sua “action”):
Não vai adiantar você colocar um objeto em request aqui, porque, como disse o Caio, o request vai ser eliminado assim que a JSP for processada, não deixando você a recuperar no servlet 2(lá é outro objeto request).
Faça algo assim: coloque o código do seu anunciante num campo HTML (ou passe direto na URL, depende do caso) e recupere no servlet 2:
AnucianteanuncianteAntigo=newAnunciante(); //Você também poderia pegar direto da persistência, depende do casoanuncianteAntigo.setCodigo(request.getParameter("codAnunciante"));
Guarde em escopo de sessão apenas objetos que devam ser persistente, não para trocar de uma página para um servlet, etc., para isso existe request
[]s
Isso tb da no mesmo q eu passar o valor por get entao: