Jsp login ir para pagina seguinte

7 respostas
alisson027

ola
estou fazendo tela de login que ja esta praticamente pronta ja até faz a validação de usuario
só que não sei como fazer ela chamar a pagina seguinte quando loguin e senh corretos

login.html
<html>
     ...
        <body>
        <form action='login.jsp' method='get'>  
  <p>
    <img src= "logo.gif" />
  </p>
  <p>Nome: 
    <input name='enome'>
  </p>
  <p>
    Senha
    :
    <input name='esenha'>
  </p>
  <p><a href="#">Cadastre-se</a><br>
    <input name="submit" type=submit value='Enviar' />
</form>
</body>
</html>

[code]login.jsp
//verifica se esta correto

...
<%
String login =request.getParameter("enome");

String senha=request.getParameter("esenha");
.
.//consulta
.
if(....){
//logar e ir para pagina menu.html

}else{

//mostrar a mesma tela com a mensagem de usuario ou senha incorreta
}

%>

como eu faço para ir para menu.html e para dar essa mensagem?

7 Respostas

A

Se eu bem me lembro, você pode jogar para outra página de 2 formas:

  • response.sendRedirect
  • <jsp:forward page=“url”/>
response.sendRedirect("menu.jsp");
<jsp:forward page="menu.jsp">
alisson027

obg andre é exatamente isso, só que ainda preciso do erro
quando senha incorreta seria para mostrar a login.html com uma mensagem abaixo tipo “senha incorreta”
coloquei o cod chamando ela e out.println abaixo mas nao funciona

A

tenta fazer algo assim na tela do login:

  • Chame um atributo que é o erro
  • Se atributo == null ? “Não exibe nada” : “Erro”;

vamos no exemplo lá:

<html>  
     ...  
        <%
                 //captura onde vai dar o erro aqui
                 String deuErro = request.getParameter("erro");
         %>
        <body>  
        <%=(deuErro != null) ? out.println("Senha Incorreta") : "") %>
        <form action='login.jsp' method='get'>    
  <p>  
    <img src= "logo.gif" />  
  </p>  
  <p>Nome:   
    <input name='enome'>  
  </p>  
  <p>  
    Senha  
    :  
    <input name='esenha'>  
  </p>  
  <p><a href="#">Cadastre-se</a><br>  
    <input name="submit" type=submit value='Enviar' />  
</form>  
</body>  
</html>

e na verificação:

<% 
String login =request.getParameter("enome"); 

String senha=request.getParameter("esenha"); 
. 
.//consulta 
. 
if(....){ 
//logar e ir para pagina menu.html 

}else{ 
%><jsp:forward page="login.jsp?erro=1"/><%
//mostrar a mesma tela com a mensagem de usuario ou senha incorreta 
}

deu pra pegar a idéia?

alisson027

intendi a logica, mas quando coloquei esse cod no login.html ele apenas exibiu o cod
seria pq a pagina é .html e não .jsp ou não tem nada a ver?

A

isso mesmo, elemenstos jsp são exibidos somente em páginas jsp

alisson027

fica dando o seguinte erro

org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 14 in the jsp file: /Formulario.jsp
Incompatible conditional operand types void and String

14:  <%=(deuErro != null) ? out.println("Senha Incorreta") : "") %>
A

Uai, é só alterar kkkkkk

<%  
                 //captura onde vai dar o erro aqui  
                 String deuErro = request.getParameter("erro");  
                 String mensagem = "";
                 if ((deuErro.isEmpty()) || (deuErro.length() == 0) {
                              mensagem = "Falhou alguma coisa";
                 }
         %>
        <body>    
        <%=mensagem %>

tenta assim, aí é pura utilização de JSP, trabalha com a lógica aew kkkkkkkk

Criado 9 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 7
Participantes 2