오늘은 로그인페이지에서 데이터베이스를 구축하고
아이디/비밀번호를 체크해서 로그인을 해보겠다.

아직 DB 공부는 안해서 DB 공부 들어가기전에
메모장을 이용해서 아이디 비밀번호를 관리해서 구현해보겠다.

먼저 메모장 파일을 만든다.



(아이디/비밀번호 파일)


아이디         비밀번호
root               toor
hack             1234
security          aaa

이렇다.

이 파일에서 입력받아서 ArrayList로 만들것이다.
이 과정은 앞으로 계속 사용할 것이므로 java 파일로 만들어 둘것이다.
소스에서 패키지 만들고 class를 생성하였다.




(DB 받아들이는 파일)



이제 이 파일을 이용해 메모장 DB를 접근하여
아이디/비밀번호를 체크해 보겠다.

로그인 체크는 로그인 체크.jsp 에서 확인하는 코드를 추가하였다.



(체크 하는 코드 추가)



filename 을 경로를 지정 받아서 filename을 만들었다.
그 후 db 배열에 입력하였다.

그 후 멤버의 수를 계산하였다. 그 이유는 인덱스를 나중에 계산하기 위해서이다.

contain 메서드를 이용해 id를 체크하고
인덱스를 계산하였다.

그 후 아이디/비밀번호를 체크하였다.

실행 화면은 다음과 같다.




(없는 아이디를 입력)





(아이디와 비밀번호를 다시 확인해달라고 나왔다.)



(지금 쓰면서 생각 난 것인데, 이 부분을 아이디와 비밀번호를 확인해달라고 경고창을 띄우고
 다시 로그인 화면으로 돌아가게 할 것이다. 나중에 이 코드를 추가할 것이다. )





(존재하는 아이디, 하지만 틀린 비밀번호 입력)





(오류 화면)



이 화면에서 전과 똑같은 구문을 추가한 이유는
보안상 이유로 두개의 같은 구문으로 통일 시켰다.




(존재하는 아이디/비밀번호 입력)






(로그인 성공 화면)



제대로 성공했다고 뜨는 화면이다.

여기서
아이디로 비밀번호를 체크하는 과정을 추가해보려고 한다.
아이디를 추가하는건 조금 복잡할 것 같아서 일단 단순한
비밀번호를 찾는 기능을 추가하였다.

비밀번호 찾는 페이지에 코드를 추가하였다.





(비밀번호 찾기 페이지)



아이디 입력하면 그 아이디를 find.jsp 로 아이디를 보내준다.
find 페이지에서 이 아이디로 비밀번호를 찾아서 출력해 줄 것이다.



(find.jsp)



여기서는 경고창으로 설정하였다.
아이디가 존재하지 않으면 해당 아이디가 없다고 출력을 해주고
해당 아이디가 있으면 해당 아이디에 일치하는 비밀번호를 출력해준다.



(아이디/비밀번호 찾기 클릭)





(아이디/비밀번호 찾기 페이지)



없는 아이디를 입력해보겠다.




(없는 아이디 입력)

(결과 화면)




존재하는 아이디를 입력해보겠다.





(존재하는 아이디 입력)


(비밀번호 출력)



여기서 치명적인
논리적 헛점(?) 을 발견하게 되었다....




(비밀번호를 입력)






(오류화면)



그 이유는 코드에 있었다..
다시 잘 보면..



(문제 코드 화면)



id를 찾는 과정에서 db에서 contain 함수로 찾기 때문에
비밀번호를 찾아도 아이디라고 생각하고 그 값의 인덱스를 출력하고

그 출력에다가 멤버의 수를 더하니 db의 인덱스를 초과해서
에러 화면이 나오는 것이다.
...
..
그렇다는 것은
로그인 화면에서도
아이디에 비밀번호를 입력하면
에러 화면이 뜰것이라는 것이다..

내일 이 부분에 대해서 수정을 해야할 필요가 있다.
내일은 이 부분에 대해서
보완을 해보겠다...! ㅜㅜ


+ Recent posts