Enviar parametro de session para um Controller

19 respostas
tompereira

boa tarde pessoal , estou tentando recuperar o nome do usuario de uma session mas não sei como fazer se alguem puder me explicar estou seguindo o exemplo de loja virtual da caelum e preciso pegar o nome do usuario que está logando , na jsp eu pego o nome assim :

${usuarioWeb.nome }

mas quando tento pegar na minha classe controller simplesmente não consigo , dá erro de javanullpointer exception , segue o metodo que estou usando para tentar recuperar o nome do usuario da sessão :

public void verificaestatus(UsuarioWeb usuario){
       
		if (usuario.getNome()=="ton"&& usuario.getNome()!= null){
		result.redirectTo(PagamentosController.class).lista();	
			
		}else{
        result.redirectTo(AdminController.class).negado();

		}
	}

se alguem puder me ajudar . :cry: :? :frowning:

19 Respostas

getAdicted

Action:

public class CadastroUsuarioAction extends Action {

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        SendMail sm = new SendMail();
        SecurityFilterJDBCRealm jdbc = new SecurityFilterJDBCRealm();

        String email = request.getParameter("usuario.email");

        CadastroUsuarioForm formulario = (CadastroUsuarioForm) form;

        Usuario usuario = formulario.getUsuario();
        usuario.setUsuario("usuario");
        new UsuarioDAO().adiciona(usuario);

        String convertListToString = "Dados de acesso:";
        Iterator ite = jdbc.getLoginPasswordToMail(email).iterator();
        while (ite.hasNext()) {
            convertListToString += (String) ite.next();
            convertListToString += " ";
        }


        return mapping.findForward("ok");
    }
}

JSP:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

<html:html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Teste do Struts</title>
    </head>

    <center><html:form action="/novoCadastro" focus="contato.nome">
        Nome:
        <html:text property="usuario.nome"/>
        <html:errors property="nome"/>
        <br/>
        Login:
        &lt;html:text property="usuario.login"/&gt;
        &lt;html:errors property="login"/&gt;
        <br>
        Senha:
        &lt;html:text property="usuario.senha"/&gt;
        &lt;html:errors property="senha"/&gt;
        <br>
        Email:
        &lt;html:text property="usuario.email"/&gt;
        &lt;html:errors property="email"/&gt;
        <br/>
        &lt;html:submit&gt;Enviar dados&lt;/html:submit&gt;
        <br/>
    &lt;/html:form&gt;
&lt;/html:html&gt;&lt;/center&gt;

Olá,

Dessa forma você terá acesso ao seu bean para trata-lo na sua Action, etc:

request.getParameter("usuario.email");

[EDIT] estou utilizando Struts 1.x no exemplo, dessa forma, estendi a classe Action, se você estiver utilizando Servlet, deve estender a HTTPServlet.

Espero te ajudado!

[]'s

tompereira

brigado ai cara vou testar o exemplo que vc me passo , mas no meu caso nao estou usando servlet , estou programando tudo em jsp e java com o vraptor , quanto a recuperar os dados da sessao no jsp eu consegui , mais agora preciso recuperar na classe java para que eu possa saber pelo nome se o usuario pode ou nao acessar a pagina que ele quer , entao basicamente eu mandaria este metodo que verifica os nomes para todas as logicas da pagina e se fosse administrador passava em todas . se puder me ajudar somente falta pegar o nome do usuario que está na sessao para fazer a decisao se e usuario administrador ou nao .

getAdicted

Eu tenho um exemplo completo de segurança utilizando VRaptor de acordo com a apostila fj21-caelum, se quiser, posso disponibiliza-lo.

[EDIT] Entendi o que quer dizer, você ja implementou a sua Servlet, você gostaria de ter acesso aos métodos dela, é isso?

[EDIT]² … métodos e atributos.

[]'s

tompereira

cara se vc puder passar o exemplo de segurança para mim vou ficar muito agradecido mesmo . estou desde semana passada tentando fazer esta parte de segurança funcionar mas sem sucesso , tentei configurar pelo tomcat , tentei jaas ,tentei ate por applet mais nada …
e no meu caso eu quero fazer o acesso das informações da sessão mesmo mas so que é pela classe java que e meu controller por que nao estou usando servlet e para mim usar terei que modificar o projeto inteiro o que vai dar muito mais trabalho …

aguardo contato.

getAdicted

Estou te enviando,

Qualquer problema me fala.

[]'s

tompereira

como vc vai enviar ? por email?

getAdicted

[email removido]

add ai

tompereira

enviei um para vc o meu e [email removido]

getAdicted

TEm 28 mb :frowning:

tompereira

compacta ele e envia por gmail o gmail aceita ate 25 mb ou entao coloca no

skydriver do hotmail e coloca na pasta publico ai vc me passa a url para eu baixar .

tompereira

falando nisso tem ate meu projeto la se vc quiser ver

getAdicted

Olá amigo,

Desculpe a demora, eu já coloquei o projeto na pasta publica do meu hotmail.

Vou aproveitar para fazer o download do seu projeto.

Bom domingo!

[]'s

tompereira

este e o endereco do meu projeto e so colocar na barra de endereco que vai direto
http://cid-758ca680486ddf11.office.live.com/self.aspx/.Public/AromaNaWeb2.5.7.war

passa o seu ai …

tompereira

eu consegui resolver a segurança utilizando memoryrealm do tomcat
so estou vendo como faço para que toda hora seja requerido a senha pois esta gravando a senha e enquanto nao fechar o browser e iniciar de novo a senha fica gravada dando acesso a todos .

getAdicted

http://cid-df852e6bf787b23f.office.live.com/browse.aspx/.Public?sa=44095439

[]'s

tompereira

obrigado ai cara to baixando , e eu estou começando em programação para web mas o que precisar que estiver ao meu alcance estamos ai … ate

getAdicted

Opa,

Somos eternos aprendizes.

O que precisar estamos aqui.

Fica com deus!

Abraço!

Hebert_Coelho

Vc não está gravando em campo estático não, está?

tompereira

estou usando a segurança declarativa do tomcat , como assim campo estatico ?, eu configurei memoryrealm mas queria que ele pedisse senha toda hora por padrao toda vez que entro em uma pagina do administrador mas ele pede somente a primeira vez e depois já grava a senha e não pede mais se vc puder ajudar .

Criado 27 de novembro de 2010
Ultima resposta 28 de nov. de 2010
Respostas 19
Participantes 3