[Resolvido]ArrayList criando todas vezes que eu abro a pagina jsp ela cria umArrayList.  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

Como criar o arrayList apenas ums vez ? se eu colocar dentro de um if só para criar.. eu não posso usar ele em outro lugar para add...
Quando eu abro a página ele ja cria... quando atualiza ele cria de novo

This message was edited 2 times. Last update was at 04/04/2011 00:18:52

Link_pg
JavaEvangelist
[Avatar]

Membro desde: 28/04/2006 00:17:38
Mensagens: 413
Localização: Praia Grande / São Paulo - SP
Offline

Olá!

Nesse caso você pode usar o objeto session (HttpSession):



Essa lista está disponível para qualquer página (e qualquer servlet), durante uma sessão aberta por esse cliente.
Algo em português aqui e em inglês aqui.

Abraços

This message was edited 1 time. Last update was at 03/04/2011 19:45:47


Eduardo Felipe Vieira

Blog de Tecnologia!
Outro blog meu legal também mas não é de TI.



"Nós poderíamos ser muito melhores se não quiséssemos ser tão bons."
[Email] [WWW] [MSN]
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

mas o arrayList fica solto na classe mesmo é? ele não vai ficar criando e zerando o array todas as vezes que eu criar um novo ?

outra dúvida... como posso add o objeto no array...

assim:


ou assim:




outra dúvida... como faço parra exibir o array em outra página... ? comofica o get session na outra página...

responda aew por favor. vale 1 ponto ... ate meia noite.. tou a um tempão tentando fazer isso.
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

veja como ta:

felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

acho que ele ta criando um novo array na sessão ai fica substituindo.
Link_pg
JavaEvangelist
[Avatar]

Membro desde: 28/04/2006 00:17:38
Mensagens: 413
Localização: Praia Grande / São Paulo - SP
Offline

É, essa linha aqui tem que ser substituida por um código igual ao que eu coloquei ali:

Isso faz criar toda vez que você ve a página, mas você só pode criar quando ele for nulo na sessão.

Eduardo Felipe Vieira

Blog de Tecnologia!
Outro blog meu legal também mas não é de TI.



"Nós poderíamos ser muito melhores se não quiséssemos ser tão bons."
[Email] [WWW] [MSN]
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

vou tentar aqui.. agora.. como faço para exibir o array da
sessão em outra página... ?


então na página de cadastro ficará assim ?

This message was edited 1 time. Last update was at 03/04/2011 20:26:52

Link_pg
JavaEvangelist
[Avatar]

Membro desde: 28/04/2006 00:17:38
Mensagens: 413
Localização: Praia Grande / São Paulo - SP
Offline

Cara, desculpa, agora vi que faltava coisa:

Lê o código com calma que você vai entender.

Eduardo Felipe Vieira

Blog de Tecnologia!
Outro blog meu legal também mas não é de TI.



"Nós poderíamos ser muito melhores se não quiséssemos ser tão bons."
[Email] [WWW] [MSN]
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

...



This message was edited 3 times. Last update was at 03/04/2011 21:02:03

felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

Está funcionando agora =)

Desculpe, mastem como vc explicar esse código ?
É assim? Tipo.. lista vai receber o array da sessão ne isso? mas se eu ainda nao setei uma sessão. o.0
verifica: se lista for null então cria um ArrayList lista e seta um arrayList() na sessão.
A primeira execução ele vai entrar no if pra criar um array e uma sessão acertei ? bom.. se sim .. então depois add o obj noarray lista.add(clasCad);
se ele ta add o objeto no array ... como ele ta enviando pra sessão ? entrando no if de novo ?



felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

felipevs wrote:Está funcionando agora =)

desculpe.. mas deixe eu ver se eu entendi... ele vai entrar no if criar um array e uma sessao... (pq o array nao existe ne isso?) mas depois quando nao for mais null... como ele vai setar um novo valor no array ?



Link_pg
JavaEvangelist
[Avatar]

Membro desde: 28/04/2006 00:17:38
Mensagens: 413
Localização: Praia Grande / São Paulo - SP
Offline

É assim:



Esse código tenta pegar a lista na sessão. Se tiver, ele pega e bota na variável lista, se não tiver, ele bota null na lista.



Daí você verificando isso, consegue criar uma nova lista se ela não existir, já colocando-a na sessão. Na próxima vez que você verificar a sessão em busca dessa lista, ela vai estar lá até rolar um session.invalidate() ou ela expirar por tempo (ela tem um tempo de vida - ou inatividade, que é configuravel). Esses conceitos você consegue ver ali nos links que eu te passei, mas pense na sessão como uma área reservada na memória pra você guardar objetos e elas são acessíveis apenas pelo cliente (usuário) que botou o objeto lá nesse espaço. No submarino.com.br por exemplo, quando você coloca um item no carrinho de compras, coloca na verdade na sessão do seu usuário.

This message was edited 1 time. Last update was at 03/04/2011 22:03:22


Eduardo Felipe Vieira

Blog de Tecnologia!
Outro blog meu legal também mas não é de TI.



"Nós poderíamos ser muito melhores se não quiséssemos ser tão bons."
[Email] [WWW] [MSN]
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

então ele so entra no if uma vez ne isso ? a sessão não exite.
Se sim.
como ele so entra uma vez.. como ele add na sessão o novo valor... se ele so tem o set dentro do if ?


Desculpe.. e obrigado pela paciencia... é que comecei a pegar java web agora...
Link_pg
JavaEvangelist
[Avatar]

Membro desde: 28/04/2006 00:17:38
Mensagens: 413
Localização: Praia Grande / São Paulo - SP
Offline

Sim, isso mesmo, ele só entra no if uma vez. Por que? Porque a lista só é nula uma vez, na segunda vez ao invés de ela ser nula, ela vem preenchida com o objeto que você colocou na sessão anteriormente.

Eduardo Felipe Vieira

Blog de Tecnologia!
Outro blog meu legal também mas não é de TI.



"Nós poderíamos ser muito melhores se não quiséssemos ser tão bons."
[Email] [WWW] [MSN]
felipevs
JavaEvangelist

Membro desde: 05/01/2011 00:23:31
Mensagens: 456
Offline

isso mesmo.. mas como ele so entra uma vez ... não deveria ter um session.setAttribute("arrayNaSessao", lista); fora do if ?
se so tem dentro do if .. como ele da um set para o array no segundo cadastro ?
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team