Erro em jsp comparando String, não consigo entender porque acontece o erro

2 respostas
deivid

Boa tarde sou iniciante em JSP.
Esta acontecendo a seguinte exceção no meu JSP.


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
org.apache.jasper.JasperException: Exception in JSP: /autenticador.jsp:7

4: {
5: if(nome.equals("deivid"))
6: {
7: if(senha.equals("123"))
8: return true;
9: }
10: return false;

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

root cause
java.lang.NullPointerException
org.apache.jsp.autenticador_jsp.verificaUsuario(autenticador_jsp.java:14)
org.apache.jsp.autenticador_jsp._jspService(autenticador_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

O codigo do JSP
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%! public static boolean verificaUsuario(String nome, String senha)
    {
        if(nome.equals("deivid"))
        {
          if(senha.equals("123")e)
                return true;
        }
        return false;
    }
%>
<%
    // Pegamos a session
    session = request.getSession();
    // Verificamos se a session existe
    out.print(session.getAttribute("nome"));
    if(session.getAttribute("nome")== null)
    {
        // Pegamos os parametros do formulario
        String nome = (String) (request.getParameter("nome"));
        String senha = (String) (request.getAttribute("senha"));
        
        if(nome == null)
        {
            response.sendRedirect("login.html");
        }
        else
        {
            // Fazemos a consulta no banco de dados para ver se existe o usuario
            boolean existe = verificaUsuario(nome, senha);
        
            if(existe == false)
            {
                // Redireciona para a pagina de login pois seus dados estão errados
                response.sendRedirect("login.html");
            }
            else
            {
                out.println("entrou aqui criou a session "+ nome);
                // Criamos a session de login
                
                session.setAttribute("nome", nome );
                session.setAttribute("senha", senha);
                out.print(session.getAttribute("nome"));
            }
        }
    }
 
%>
Quando tento fazer o primeiro login testando por GET http://localhost:8084/javamailmack/autenticador.jsp?nome=deivid&senha=123 acontece a exceção parece que no equals. Mas não era pra funcionar corretamente? Qual é o erro pessoal? Obrigado

2 Respostas

ziegfried

troque:

String senha = (String) (request.getAttribute("senha"));
por:

String senha = (String) (request.getParameter("senha"));

Você não setou um atributo de request, e sim um parâmetro. Por isso, senha estava null.

Boa sorte!

deivid

Funcionou, muito Obrigado!

Criado 2 de junho de 2007
Ultima resposta 3 de jun. de 2007
Respostas 2
Participantes 2