Como fazer para aparecer o nome da pessoa logado no sistema na página?

6 respostas
B

Pessoal gostaria de saber como eu faço para mostrar o nome da pessoa quando ela entrar no sistema, após feito o login aparecer uma msg de boas vindas.

segue o meu código html do formulário
<div id="site">
		 <div id="login"> 
			<form action="verificaUsuariosBD" method="post"> 
					<div id="nome">       <label>Usuário :</label>        </div>    
					<div id="input_nome"> <input type="text" name="user_" size="20px"></div>    <br>
					
					<div id="senha"><label>Senha : </label>   </div> 
					<div id="input_senha"><input type="password" name="password_"> </div>   <br>
					
					<div id="btn_logar"> <input type="submit" name="logar_" value="Entrar"> </div>
					<div id="btn_limpar"><input type="reset" name="clear_" value="Limpar"> </div>
					
					<div id="link_esqueceuSenha"><a href="#">Esqueceu sua senha?</a> </div>
					<div id="link_cadastrar"><a href="cadastro.jsp">Se cadastrar!</a> </div> 
			</form>
		</div>
	</div>

segue minha servlet para verificar o usuario

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	 
		conectaBanco carrega = new conectaBanco();
		carrega.fazConexao();
		
		//aqui estou pegando o nome e a senha que vem do formulario
		 String user = request.getParameter("user_");
		 String senha = request.getParameter("password_");
		 
		 cadastro cd = new cadastro();
		 cd.setUsuario(user);
		 cd.setSenha(senha);
		 
		 
		 //aqui estou chamando a classe que checa os nomes do BD para ver se a pessoa tem acesso ou nao ao sistema
		 verificaUsuario vUser = new verificaUsuario();
		 
		 //aqui estou passado parametro senha e usuario
		 Integer status = vUser.verifica(cd.getUsuario(),cd.getSenha()); 
		
		 try{
			  
		 if(status == 1){
			 //aqui estou criando uma sessão
			 HttpSession session = request.getSession(true);
			 
			 //aqui passo qualquer nome para recuperar esse nome para ver se ele estar logado ou nao
			 session.setAttribute("logado", true);
			 
			 //System.out.println("estamos na servlet de novo urururur");
			 response.sendRedirect("/ProjetoWEB/admin/logado.jsp");
			 
			 System.out.println(request.getParameter("user_"));

		 }else{
			 System.out.println("Senha ou Usuario incorreto");
			 response.sendRedirect("/ProjetoWEB/index.jsp");
		 }
			 
		 }
		 catch(Exception e){
			 response.sendRedirect("/erros/erro.jsp");
		 }

e o meu filtro para ver se tem sessão ou não

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
///fazendo um cach
		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse res = (HttpServletResponse) response;
		
		
		//recuperando a sessão
		HttpSession session = req.getSession();
		
		//vendo se a sessão não é nula, se ele estar logado ou nao 
		if(session == null || session .getAttribute("logado")== null){
			res.sendRedirect("/ProjetoWEB/index.jsp");
			//se ele tentar bular ou nao logar ele volta para o INDEX
		}
		
		// pass the request along the filter chain
		chain.doFilter(request, response);
	}

6 Respostas

F

Passa o nome com um atributo de sessão, como vc fez com o “logado”.

session.setAttribute("username", nomeDoUsuario);

// Depois, no JSP vc pode recuperar utilizando EL
${username}

Porém, se vc quiser mostrar esse nome no Javascript vai ter q chamar a função no JSP e passar o usuário como parâmetro pq o Javascript não consegue ler esses atributos.

// Um exemplo seria ao carregar a página (não testei mas acredito q funcione)
&lt;body onload='mostrarMensagem(${username})'&gt;
B

fabiocortolan coloquei das duas formas que vc me passou mas sem sucesso..
segue da forma que fiz

session.setAttribute("usuario", cd.getUsuario());
ou
 session.setAttribute("usuario",user);
e na jsp
echo ${user};

<body onload="'Bem vindo(${usuario})'">

ele da a mensagem de TRUE

F

Os valores de “cd.getUsuario()” e “user” são o nome do usuário? Vc já fez um debug p/ ver se os valores estão corretos?

G

Cara,

Será que não resolve se na sua pagina vc tentar pegar o valor da session?

Algo como:

String user = (String) request.getSession().getAttribute( "usuario" );
<%@ page import="java.io.*,java.util.*" %>
<%
    String user = (String) request.getSession().getAttribute( "usuario" );
%>
<html>
<head>
<title>Teste</title>
</head>
<body>
<center>
<h1>Usuario</h1>
</center>
<div align="center">
<p><% out.print(user); %></p>
</div>
</body>
</html>

Algo em torno disso...

F
gpanassol:
Cara,

Será que não resolve se na sua pagina vc tentar pegar o valor da session?

Algo como:

String user = (String) request.getSession().getAttribute( "usuario" );
<%@ page import="java.io.*,java.util.*" %>
<%
    String user = (String) request.getSession().getAttribute( "usuario" );
%>
<html>
<head>
<title>Teste</title>
</head>
<body>
<center>
<h1>Usuario</h1>
</center>
<div align="center">
<p><% out.print(user); %></p>
</div>
</body>
</html>

Algo em torno disso...

Desse jeito pode até funcionar, mas é aconselhável não utilizar scriptlet nas páginas, um EL (expression language) funciona, já usei em alguns sistemas, e fica mais simples para manter.

B

Fiz dessa forma e conseguir trazer o nome de quem logou na tela…

fabiocortolan vc falou q dessa forma não seria legal, não conseguir fazer de outra forma, ainda estou aprendendo, se tiver como fazer de outra maneira e puder me falar agradeço…

Obrigado a todos que me ajudaram…

Criado 16 de julho de 2013
Ultima resposta 17 de jul. de 2013
Respostas 6
Participantes 3