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 :
publicclassCadastroUsuarioActionextendsAction{@OverridepublicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{SendMailsm=newSendMail();SecurityFilterJDBCRealmjdbc=newSecurityFilterJDBCRealm();Stringemail=request.getParameter("usuario.email");CadastroUsuarioFormformulario=(CadastroUsuarioForm)form;Usuariousuario=formulario.getUsuario();usuario.setUsuario("usuario");newUsuarioDAO().adiciona(usuario);StringconvertListToString="Dados de acesso:";Iteratorite=jdbc.getLoginPasswordToMail(email).iterator();while(ite.hasNext()){convertListToString+=(String)ite.next();convertListToString+=" ";}returnmapping.findForward("ok");}}
JSP:
<%@pagecontentType="text/html"pageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><%@tagliburi="http://struts.apache.org/tags-html"prefix="html"%><html:html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>SistemadeTestedoStruts</title></head><center><html:formaction="/novoCadastro"focus="contato.nome">Nome:<html:textproperty="usuario.nome"/><html:errorsproperty="nome"/><br/>Login:<html:textproperty="usuario.login"/><html:errorsproperty="login"/><br>Senha:<html:textproperty="usuario.senha"/><html:errorsproperty="senha"/><br>Email:<html:textproperty="usuario.email"/><html:errorsproperty="email"/><br/><html:submit>Enviardados</html:submit><br/></html:form></html:html></center>
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 …
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 .
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 .