Pegar o conteúdo de uma sessão dentro de uma Classe com JavaBeans

6 respostas
L

Preciso que minha Classe pegue o valor de um sessão, só que estou trabalhando com JavaBeans e não com Servlet!

Alguém sabe como fazer com que minha Classe Bean pegue o conteúdo de uma sessão?

Tentei usar o seguinte método mais não funcionou!

public boolean getValidarAcesso() throws ServletException { HttpSession sessao = request.getSession(); return sessao.getAttribute("logado").equals("1"); }

Obrigado!

6 Respostas

ercardoso

você precisa passar o HttpRequest pra seu metodo e retornar o mesmo para a Serlvet!

L

Estou usando as seguintes bibliotecas!

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;

private HttpServletRequest request;
    private HttpServletResponse response;
    
    public int getValidarAcesso() throws ServletException {
        int conteudo = 1;
        boolean validar = false;
        try {
            HttpSession sessao = request.getSession();
            conteudo = Integer.parseInt((String)sessao.getAttribute("logado"));
            if (conteudo == 1) {
                conteudo = 1;
                validar = true;
            } else {
                conteudo = 0;
                validar = false;
            }
        }  catch (Exception e) {
            System.out.println("Erro ao pegar ao validar a sessão: " + e.getMessage());
        }
        return conteudo;
    }

Mas não funciona!

phabbyo

é maninhu estou com o mesmo problema…

preciso setar o meu bean através de variável de sessão, mas ai tah osso viu

caso vc descubra uma forma, por favor me deixe saber…

[]´s

L

CONSEGUI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Para que o Java Beans pegue o conteúdo de uma sessão você deve fazer o seguinte:

1 - Cria uma classe para tal tarefa

package br.com.sessao;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ValidarSessao {
    
    /** Creates a new instance of ValidarSessao */
    public ValidarSessao() {}
    
     public boolean getValidarAcesso(HttpServletRequest request) throws ServletException, IOException {
        HttpSession sessao = request.getSession(true);
        return sessao.getAttribute("permissaoAcesso").equals("sim");
    }
    
}

2 - Para verificar se classe beans realmente pegou o conteúdo da sessão faça o seguinte:

<jsp:useBean id="testeSessao" scope="page" class="br.com.sessao.ValidarSessao" />
    
    <%
        boolean acesso = testeSessao.getValidarAcesso(request);
        out.println("Acesso: "+acesso);

    %>

Se voltar com TRUE a classe leu sua sessão!

ercardoso

foi u q tinha te falado, mas axo q tinha entendido errado, sobre a verificaao da validacao procure usar o JSTL para nao expor codigo java no seu jsp.

phabbyo

ai leonardocfmg

vc é o cara hein…

vlw mesmo… era exatamente o meu problema

agora jah era…rs

vlw mesmo

e boas programações…rs

Criado 8 de fevereiro de 2007
Ultima resposta 9 de fev. de 2007
Respostas 6
Participantes 3