2017-11-16 19 views
0

는이 오류를 얻을 : java.lang.NullPointerException이 내가 많은 솔루션을 시도하십시오 그러나 그것은 작동하지 않았다 그것은 간단한 코드 java.lang.NullPointerException이 500

public LoginServlett() { 
    super(); 

} 

protected void doGet(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 


    String name = request.getParameter("UserName"); 
    String pass = request.getParameter("Password"); 

    RequestDispatcher d=null; 

    if (name.contentEquals("Gestionnaire") && pass.contentEquals("1234")) { 
     HttpSession session; 
     session =request.getSession(true); 
      d =request.getRequestDispatcher("/EspaceGestionnaire.html"); 
     session. setAttribute("NomSauvegardé" ,name); 
    } 

    else { 
     d = request.getRequestDispatcher("/Authentification.html"); 
     d.forward(request, response); 

    } 
} 

protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { 
} 

에게}이다

+1

NPE에 관해 불만은 어느 시점입니까? 통나무는 당신에게 말해야한다. 내 생각 엔 그 파일 중 하나가 존재하지 않는다는 것입니다. – Gibolt

+0

NullPointerException은 매우 일반적이며 JEE 기계는 너무 커서 아무 것도 될 수 없습니다. 조금 더 깊이 파고 코드를 실험하고 전체 스택 추적을 게시하십시오. – teejay

+0

로그 파일은 C : \ Users \ pc \ JEE-workspace \ AgenceLocations \ build \ classes \ LoginServlett.class에있는 LoginServlett입니다. C : \ Users \ pc \ JEE-workspace \ AgenceLocations \ WebContent의 기타/EspaceGestionnaire 및 / – Soona

답변

0

사용자 이름 및 암호 매개 변수를 설정하지 않으면 코드에서 NPE가 발생합니다. 값이 설정되지 않으면 userpass 변수가 null이되며 contentEquals 메소드가 호출되면 NPE가 결과로 throw됩니다.

작업이 당신이 확인하고 싶은 문자열을 호출하도록 평등 검사를 반대하는 것입니다 할 수있는 방법 : 당신의 코드는 NPE를 던지는없이하고자하는 일을 할 것입니다

if ("Gestionnaire".contentEquals(name) && "1234".contentEquals(pass)) { 

합니다.

인터넷을 통해 암호를 보내는 경우 POST 대신 GET을 사용하는 것이 좋습니다. Java EE 보안의 경우 새로운 보안 API (https://javaee.github.io/security-spec/)