2014-04-30 4 views
1

저는 JSP가 완전히 새롭고 간단한 양식을 만들고 JSP를 통해 유효성을 검사합니다. 다음은 내 코드입니다 : -JSP를 사용하여 양식 유효성 검사

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
</head> 
<%@page import="java.io.* , java.sql.* , java.util.* , javax.servlet.*" %> 

<body> 
    <h1>Login Page by JSP</h1> 
    <hr> 
    <form method="post" action="index_jsp"> 
     Enter name : <input type="text" name="user"> 
     Enter password : <input type="password" name="pass"> 
     <input type="submit" value="login"> 
    </form> 
    <% 
    String user = request.getParameter("user"); 
    String pass = request.getParameter("pass"); 

    if(user.equals("admin") && pass.equals("admin")) 
    { 
    response.sendRedirect("wel.html"); 
    } 

    %> 
    <br> 
    <a href="new.jsp">Click here !</a> 

</body> 
</html> 

하지만 그것을 실행하는 각과마다, 나는 NullPointerException이 얻을. 내가 뭘 잘못하고 있니? 즉각적인 도움을 주시면 감사하겠습니다!

감사합니다.

+0

NPE는 정확히 어디에서 구할 수 있습니까? TBH, 문제를 발견하는 데 시간이 오래 걸릴 것이므로 문제를 어디에서 알 수 있다면 솔루션을 제안하는 것보다 코드를 검사하지 않았습니다. :) – prabugp

+0

** JSP 내에 Java 코드를 작성하지 마십시오. **. 튜토리얼을 따르고 있다면 지금 당장 중지하십시오. 10 년 이상 나쁜 것으로 생각되는 것을 배우지 마십시오. –

답변

0

변경

if(user!=null){ 

    if(user.equals("admin") && pass.equals("admin")) 
    { 
    response.sendRedirect("wel.html"); 
    } 
} 
+0

감사합니다. 그것은 효과가있다! 하지만 null을 확인해야하는 이유는 무엇입니까? – user3503781

+0

사용자 변수에 null이 있습니다. 또한 대답과 upvote 수락하십시오. –

0

당신은 요청이 속성에 null 확인되지 않은이 라인

if(user.equals("admin") && pass.equals("admin")) 
    { 
    response.sendRedirect("wel.html"); 
    } 

. 당신이 JSP를 처음부터

는 조언

String user = request.getParameter("user") != null ? request.getParameter("user") : ""; 
String pass = request.getParameter("pass") != null ? request.getParameter("pass") : ""; 
2

첫 번째 비트와

String user = request.getParameter("user"); 
String pass = request.getParameter("pass"); 

교체 : 스크립틀릿 코드를 작성하지 마십시오. 그것은 <%%> 사이의 모든 것입니다. 낙심해야 할 1998 빈티지 기술입니다. 대신 JSTL과 Model-2 MVC를 배우십시오.

해당 JSP를 조정하려면 서블릿이 필요합니다. 내가 아는 모든 웹 MVC 프레임 워크에는 통신 및 오케스트레이션을 관리하는 프론트 컨트롤러 서블릿이 있습니다. 너도 그래야 해.

이 JSP에는 POST 요청 양식이 있고 index_jsp (나쁜 이름)로 HTTP 요청을 보냅니다. 클라이언트 컴퓨터의 브라우저에서 실행 중입니다.

이 요청을 서버 측의 서블릿에 보내 HTTP 요청을 받고, 사용자 이름과 암호를 가져 와서 값을 데이터베이스와 비교하여 사용자가 실제로 등록되었는지 확인합니다. 그런 다음 다음보기를 보내거나 "죄송합니다"페이지로 연결합니다. 그것은 당신이하는 일이 아닙니다. 하지 마십시오

+0

감사! 도와 줘서 고마워! – user3503781

1

이 변수에 대한 검사를 동일, 오히려 상수에 대해이를 수행

if("admin".equals(user) && "admin".equals(pass)) { 
    response.sendRedirect("wel.html"); 
} 

이 방법 당신은 NPE를 얻을 수 없습니다.

0

변경 코드 : 처음 실행 JSP,이 코드를 실행하지만, 사용자와 패스가 null

if("admin".equals(user) && "admin".equals(pass)) { 
    response.sendRedirect("wel.html"); 
} 

.