본문 바로가기
[ Developer ]/Web - Servlet JSP

[JSP Web] Login 로그인 기능

by 김현섭. 2016. 5. 30.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Login 로그인 
  • 웹 개발에 있어서 가장 기본적이라고 볼 수 있는 Login 기능 구현
  • JSP을 기반으로 로그인을 구현한다

#로그인의 Task
  1. 회원 정보를 가져온다
  2. 일치하는 회원 정보가 있다면 세션에 넣는다
  3. 결과를 보고한다

우선 Member에 대해서 DAO를 생성한다


기본적인 회원정보 확인을 위한 메소드를 생성한다



# 회원 확인 메소드
회원 ID와 PW를 입력받았을 시 DB에 입력된 정보와 일치하는 회원이 있는지를 파악한다
회원 정보 확인 시 ID나 PW가 같지 않을 시 같지 않다는 Alert을 준다

이전의 웹에서는 ID가 틀리면 ID가 틀리다고 나오고 PW가 틀리다면 PW가 틀렸다고 알려준다
하지만 보안상의 문제 때문에 (PW가 틀렸다고 나오면 ID가 확인되는 상황) ID와 PW를 모두 비교 후 
Alert 자체를 ID나 PW가 다르다는 알림을 준다

입력한 ID, PW와 일치하는 회원 정보 1개를 가져오기 때문에 List는 필요하지 않다

결과를 가져오는 try catch 부분에서 MemberVO를 추가한 후 결과를 IF로 확인한다 (결과값이 1개가 나오기 때문)



# 쿼리 작성
쿼리에 member로 쿼리 이름을 지정해준다 그리고  Toad를 실행 시킨다

toad의 장점 중 하나인 쿼리 자동 완성을 사용한다


Select 구문에서 FROM 절에 ARTICLE.을 지우고 마지막에 ;(세미콜론)을 지워준다


이제는 조건절을 붙여준다
MEMBER_ID 와 PASSWORD를 비교한다


그리고 DAO에서 쿼리 경로를 지정해주고 ?에 데이터를 넘겨준다


그렇게 쿼리에 맞는 사용자가 있다면 멤버 객체를 하나 만들어서 정보들을 set 시켜준다


Password까지 가져오는 것을 볼 수 있다
보안상의 문제는 세션이 있는한 문제가 되진 않지만 세션 자체가 해킹 가능성이 있다

# BIZ 생성
회원 정보를 가져왔다면 세션에 넣고 없다면 알림을 주는 기능이 정의될 것이다

MemberBiz의 기본적인 틀


로그인의 기능에 따라서 메소드 login을 정의하면 된다

1 회원 정보 가져오기


회원 정보를 DB에서 검색 후 있는 정보를 가져온다
하지만 정보가 없다면 null이 있으니 null을 걸러줘야 한다

2 일치하는 회원 정보 세션에 넣기

세션은 request가 가지고 있어서 받아와야 한다 그러므로 HttpServletRequest를 파라미터로 받아와야 한다



위와 같이 session을 가져올 수 있다 이제 session을 setAttribute 시켜줘야 하는데
request는 첫 글자를 소문자로 파라미터를 넘겼짐나
session은 표준 규칙이 있다 앞뒤로 언더바를 붙이고 영문자는 모두 대문자로 적어준다


3 결과보고
2번 Task에서 if문을 본다면 일치하는 회원 정보가 있을 시에 대한 상황이다
그렇기 때문에 결과값으로 찾기에 성공과 실패를 알려줄 때 (true/false) return을 위의 논리연산을 사용한다


이제 DoLoginServlet에 가서 MemberBiz를 추가한 후 결과를 받아낸다


위와 같이 로그인이 성공했는지에 대한 Boolean 변수 선언하여 성공 시 임의의 게시판 리스트 (/list)로 보내고
아닌 경우 login에 errorCode=1을 파라미터로 보냈다