병갈이 블록

로그인 기능 구현하기. 본문

IT(Old)/JSP 실습 과정 기록

로그인 기능 구현하기.

woojang 2017. 7. 15. 16:09

문제 발생.

1. loginform을 열자마자 에러문구가 나타남.

핸들러에서 GET방식과 POST방식을 구현하지 않았어서 생긴 문제.

2. 비번을 틀리게 입력했을때, 아무런 변화가 없음. 

핸들러에 if( errors != null || !errors.isEmpty() ) 문구가 문제였음.

근데 왜...errors != null이 잘못된 문장인걸까..?

3. 로그인 확인 필터 적용시 리다이렉트가 안됨. 왜일까....

첫번째 확인. 

response의 리다이렉트 기능으로는 Filter에서 /WEB-INF/이하의 페이지에는 접속이 안된다.

주소창에 경로를 입력해도 /WEB-INF/이하의 페이지는 접속이 안된다. 

아파치 서버에서 막는걸로 보이는데..메인 서블릿에서도 안됨. 

WebContent바로 아래에 있는 페이지는 접속이 된다.

음..일단 여기까지 알아본 걸로 결론을 내자면,

WebContent바로 아래있는 페이지에 접속하려면 간단한 주소로 접속 가능. 

또 response.sendRedirect로 접속 가능.

WebContent이하 폴더안에 있는 페이지에 접속하려면 주소로 접속 불가. response.sendRedirect로 접속 불가.

오로지 RequestDispatcher의 forward로 이동해야됨.


4. 고민을 하다가 로그인 필터를 사용할 것인가, 아니면 페이지에서 세션여부를 확인 할 것인가..

아, 특정 페이지 접속시 승인 여부를 결정하려면 필터를 써야 하는군...흠...

결국, 회원만이 접속 가능한 페이지가 존재하기때문에 세션이 없는 접속자가 페이지에 접근했을때 튕구는 역할을 필터가 한다.


오늘의 테스트.

간단한 로그인 기능.

- 로그인 시 세션부여.

- 로그인 시 로그인 횟수 카운트하기.

- 로그인한 때를 기점으로 하여 마지막 접속 시간으로 잡고 마지막 접속시간 기록하기.


로그인 후 세션이 정상적으로 부여되어 있는지 확인.

- 로그인 성공 시 세션의 값을 불러와 로그인 성공페이지에 이름과 ID를 출력


로그인 필터 적용.

- 메인 페이지는 세션이 존재하지 않으면 login, join 링크를, 세션이 존재하면 회원정보수정, 로그아웃 링크를 보인다.

- 항상 [회원페이지] 접속 링크를 보여주어서 세션이 있든, 없든 링크에 접근이 가능하도록 한다.

- 이때 필터기능을 확인한다. 로그인 전(세션 부여 전) 링크를 누르면 접속 불가능 문구를 출력하고 메인페이지 링크가 걸려있는 페이지로 포워딩시킨다.

- 로그인 후(세션 부여 후) 링크를 누르면 회원페이지를 보여준다.

- 필터에서 에러페이지로 포워딩은 필터클래스에서 바로 적용되었다.(별도의 핸들러를 거치지 않음.)


일단 여기까지는 무리없이 진행하였음.

다음번에 해볼것...

게시판을 먼저 구현해 볼 것인가, 로그인 기록을 파일에 남기는 것을 먼저 해 볼 것인가.

음....


Comments