Jump to content

Archived

This topic is now archived and is closed to further replies.

juniorneo2

carrinho de compra

Recommended Posts

Pessoal estou com uma duvida sobre como fazer uma lista de compras em jsp, um colega meu disse que seria melho utilizando sessão, o que vocês acham? por favor me ajudem.

 

Exemplo de carrinho de compras: www.americanas.com :blink:

Share this post


Link to post
Share on other sites

Com certeza, melhor utilizar sessão..

 

Tanto pela facilidade e segurança que a sessão pode oferecer... cookies nunca...

 

Flwww

Share this post


Link to post
Share on other sites

Qualquer dúvida, postae denovo.

 

Flww, grande abraço.

Share this post


Link to post
Share on other sites

sublyer eu tenho outra, como eu faço para listar as sessôes que estão ativas, saber a quantidade de sessões eu consigo, mas não faço a minima de como lista os usuario.

 

Exemplo:

contador

 

pacckage trabalho;
 import javax.servlet.http.*;


 public class contadorSessao implements HttpSessionListener {

  static private int ativaSessao;

  public static int getAtivaSessao() {
		return ativaSessao;
  }

  public void sessaoCriada(HttpSessionEvent event) {

	   ativaSessao++;
  }

  public void sessaoDestroi(HttpSessionEvent event) {
	  ativaSessao--; 

  }

}

Aqui eu acrescento ou removo ou substituo um atributo em uma sessão

 

pacckage trabalho;
 import javax.servlet.http.*;


 public class listarAtributos implements HttpSessionAttributeListener {


  public void addAtributo(HttpSessionEvent event) {

	   String nome  = event.getName();
	   Object valor = event.getValue();
	   
	   ....continua
  }

}

Olha eu quero somente listar as sessões ativas e exebiras, como faço isso?

 

valeu!!!!!!!! :unsure: :unsure:

 

foi mal (package) http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Share this post


Link to post
Share on other sites

Olá juniorneo2,

 

Se você adicionar um identificador na session, podendo esse identificador um atributo, quando ocorrer o evento, você pode então capturar a session que causou o evento, através do método getSession();

 

Exemplo:

 

/**

Retorna o usuário da sessao.

*/

public void retornaUsuario(HttpSessionEvent event) {

 

HttpSession session = event.getSession();

String usuario = session.getAttribute("USUARIO_ATIVO").toString();

}

 

Use a linha abaixo para quando você colocar quando criar a session...

sessao.setAttribute("USUARIO","NOME OU CÓDIGO DO USUÁRIO");

 

Acredito que desta maneira, você consiga retornar qual session está ativa.

 

Qualquer coisa da um post aqui.. flwww

Share this post


Link to post
Share on other sites

Entendi, porque você não faz assim.

 

1º Classe para armazenar e consultar os usuários ativos

import java.util.ArrayList;
import java.util.List;

public class UsuariosAtivos implements HttpSessionListener {

	public static int quantidadeSessoesAtivas;
	
	public static List<String> usuariosAtivos = new ArrayList<String>();

	public void sessaoCriada(HttpSessionEvent event) {
		
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");
		usuariosAtivos.add(usuario);
		
		quantidadeSessoesAtivas++;		
	}

	public void sessaoDestroi(HttpSessionEvent event) {
				
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");		
		usuariosAtivos.remove(usuario);
		
		quantidadeSessoesAtivas--;
	}
	
	public List<String> getUsuariosAtivos()
	{
		return usuariosAtivos;		
	}
}

2º Código para adicionar um atributo à sessão.

Obs.: Este comando deve ser inserido na área de seu sistema, aonde é registrada a session do usuário.

 

HttpSession session = request.getSession();
session.setAttribute("USUARIO","SUBLYER");

Colocando o comando aonde o seu sistema registra a session, a pessoa que criar a sessão ser adicionada ao list do listener.

 

Qualquer coisa, da um post ai denovo..

 

Flwwm, grande abraço.

Share this post


Link to post
Share on other sites

Entendir, mas tenho uma duvida, a primeira classe que você mostrou no exemplo armazena e consulta os usuarios ativos, isto eu entendi, logo no segundo você diz

 

Obs.: Este comando deve ser inserido na área de seu sistema, aonde é registrada a session do usuário.

CODE
HttpSession session = request.getSession();

session.setAttribute("USUARIO","SUBLYER");

Olha eu acho que minha duvida é meio infantil, nesta pagina que eu registro a sessão do

usuario eu devo coloco assim:

CODE
HttpSession session = request.getSession();

session.setAttribute("USUARIO","SUBLYER");

UsuariosAtivos user = new UsuariosAtivos();

user.sessaoCriada(session);

concerteza acho que esta errado pois ele criara o objeto toda vez, ou eu colo esta classe para inciar antes de todos os outros. Afinal a duvida seria como seta esta classe(UsuariosAtivos) e passar os parametros?

 

valeu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Share this post


Link to post
Share on other sites

No seu servlet você registra a session.

Quando você registra a session, o listener ja detecta um evento e então executa a classe UsuariosAtivos automaticamente.

Logo após o registro da session, você pode consultar todas as sessions criadas, utilizando o método que retorna o list, contendo todos os usuários que registraram uma session.

Share this post


Link to post
Share on other sites

sei entendir, mas para consulta todas as sessões criadas, como eu faço?

 

como eu chamo o metodo da classe UsuariosAtivos que retorna para min?

Share this post


Link to post
Share on other sites

Considerando que ela é estática, é só chamar a classe da seguinte forma, que ela ja trará a listagem de usuários.

 

UsuariosAtivos.getUsuariosAtivos();

 

 

Como você pode reparar, esqueci de colocar que a classe era estática, arrumei e estou postando aqui embaixo:

 

import java.util.ArrayList;
import java.util.List;

public class UsuariosAtivos implements HttpSessionListener {

	public static int quantidadeSessoesAtivas;
	
	public static List<String> usuariosAtivos = new ArrayList<String>();

	public void sessaoCriada(HttpSessionEvent event) {
		
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");
		usuariosAtivos.add(usuario);
		
		quantidadeSessoesAtivas++;		
	}

	public void sessaoDestroi(HttpSessionEvent event) {
				
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");		
		usuariosAtivos.remove(usuario);
		
		quantidadeSessoesAtivas--;
	}
	
	public List<String> getUsuariosAtivos()
	{
		return usuariosAtivos;		
	}
}

Share this post


Link to post
Share on other sites

Considerando que ela é estática, é só chamar a classe da seguinte forma, que ela ja trará a listagem de usuários.

 

UsuariosAtivos.getUsuariosAtivos();

 

 

Como você pode reparar, esqueci de colocar que a classe era estática, arrumei e estou postando aqui embaixo:

 

import java.util.ArrayList;
import java.util.List;

public class UsuariosAtivos implements HttpSessionListener {

	public static int quantidadeSessoesAtivas;
	
	public static List<String> usuariosAtivos = new ArrayList<String>();

	public void sessaoCriada(HttpSessionEvent event) {
		
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");
		usuariosAtivos.add(usuario);
		
		quantidadeSessoesAtivas++;		
	}

	public void sessaoDestroi(HttpSessionEvent event) {
				
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");		
		usuariosAtivos.remove(usuario);
		
		quantidadeSessoesAtivas--;
	}
	
	public List<String> getUsuariosAtivos()
	{
		return usuariosAtivos;		
	}
}

Share this post


Link to post
Share on other sites

Considerando que ela é estática, é só chamar a classe da seguinte forma, que ela ja trará a listagem de usuários.

 

UsuariosAtivos.getUsuariosAtivos();

 

 

Como você pode reparar, esqueci de colocar que a classe era estática, arrumei e estou postando aqui embaixo:

 

import java.util.ArrayList;
import java.util.List;

public class UsuariosAtivos implements HttpSessionListener {

	public static int quantidadeSessoesAtivas;
	
	public static List<String> usuariosAtivos = new ArrayList<String>();

	public void sessaoCriada(HttpSessionEvent event) {
		
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");
		usuariosAtivos.add(usuario);
		
		quantidadeSessoesAtivas++;		
	}

	public void sessaoDestroi(HttpSessionEvent event) {
				
		HttpSession session = event.getSession();
		String usuario = session.getAttribute("USUARIO");		
		usuariosAtivos.remove(usuario);
		
		quantidadeSessoesAtivas--;
	}
	
	public List<String> getUsuariosAtivos()
	{
		return usuariosAtivos;		
	}
}

Share this post


Link to post
Share on other sites

so entendir valeu muito mesmo sublyer, mas eu tenho duas duvidas simples:

 

1º você disse que quando eu crio a sessão, este classe executa automaticamente por se tratar de uma classe HttpSessionListener, mas se eu tiver outras classes que implementam HttpSessionListener, pode haver conflito?

 

2º para destroir a sessão o contener tem um tempo default, mas eu queria saber como destroira automaticamente, pois um exemplo seria se um usuario queira clicar em (sair), assim eu destruilia como?

 

 

VALEU sublyer http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.