본문 바로가기

Programming/Doodle

Project 9 메뉴얼 만들기

Project 9 에서의 로그인에 대해 알아보겠다

우선 로그인 화면 자체는 심플하다 

우리가 여느 웹페이지들을 접하고 로그인할때 흔하게 볼 수 있는 로그인 화면이다.

아이디와 비밀번호를 입력할 수 있고 아이디를 반복적으로 입력하지 않아도록 도와주는 remember (체크박스)가 있다.

아직 회원가입 또는 sign in 등의 기능은 개발전이라 우선 DB에 넣어둔 아이디와 비밀번호로만 로그인이 가능하다

그럼 LoginVO.java 를 보자 위에서 설명하였듯 단순 로그인 기능이기에 VO에는 userid, userpw, remember 이렇게 기능에 필요한 세개만 만들어 두었다 private String 으로 변수 만들어 주고 마우스 우클릭 source 에 generate getter and setters.. 로 게터 세터 생성해 준다.

다음은 SQL문 확인을 해보자 로그인은 유져의 아이디와 비밀번호 등을 필요로 하기에 member.xml 에 SQL 쿼리를 작성하였다. 작성된 쿼리를 확인해 보면 메인유져 테이블에서 유져넘버, 아이디, 이름, 권한 을 불러오는것을 볼수 있다. 작성된 쿼리의 조건절을 확인해 보면 디비에 유져 아이디와 비밀번호가 작성한 아이디 비번과 일치하는가를 확인 하는 조건이 들어가 있는데 비밀번호 같은 경우 USERPW=SHA2(#{userpw}, 256) 라고 작성 되어 있어 아이디와는 조금 다르다는 것을 느낄 수 있을것이다. 여기서 SHA2 는 비밀번호를 암호화하기위한 해싱 함수로 비밀번호가 디비에 인코딩되어 저장 될 때 디코딩 할 수 없게 만들어 주는 비밀번호를 보호하기위한 방법으로 더 자세한것은 인터넷을 찾아보기 바란다.

MemberSvc 에서 SqlSessionTemplate은 마이바티스 스프링 연동모듈의 핵심으로  SqlSessionTemplate 은 SqlSession을 구현하고 코드에서 SqlSession 을 대체하는 역할을 한다.

LoginCtr 을 보자

@Autowired 는 스프링에서 제공하는 기능으로 XML(ApplicationContext)에 따로 빈을 작성해서 DI해주는 작업을 하는 대신에 DI받고자 하는 객체나 메소드에 Autowired 어노테이션을 명시적으로 작성한다. Autowired 어노테이션을 객체나 메소드의 앞에 명시적으로 작성했다면 해당 객체가 DI를 받기 위해 setter 메소드를 작성해서 사용할 필요가 없다. DI를 받기 위해 존재해야 하는 것이 setter 메소드라는 존재인데 이는 XML에서 DI를 해서 빈을 넘겨주면 *.java 파일에서 빈을 받기 위해 생성자나 setter 메소드가 필요한 것인데 Autowired 어노테이션이 이 작업을 하지 않아도 된다고 알려주는 것이다.

여기에서는 MemberSvc를 ...

MemberLogin.jsp 

onkeydown 의  event.keyCode == 13 은 enter 를 의미한다