코딩/Spring 쇼핑몰 프로젝트

Spring [쇼핑몰프로젝트] - 로그인 기능 구현[18]

유미._. 2023. 5. 2. 16:34
728x90

 

 

오늘은 로그인 기능 구현에 대한 두번째 포스팅을 해보겠습니다 ヾ(≧▽≦*)o 2

 

 

구현 순서

 

1. 로그인 페이지 아이디, 비밀번호 전송 및 확인

2. 로그인 처리 메서드 작성

3. 테스트

 

 

1. 로그인 페이지 아이디, 비밀번호 전송 및 확인

 

아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 데이터가 서버에 전송되면서 로그인 기능이 수행 될 수 있도록 태그와 속성들을 추가해 줍니다. 

 

① login.jsp 에 form 태그를 추가해 줍니다. (14번, 33번 라인)

 

 

② id_input 값과 pw_input 클래스에 name 속성을 추가해 줍니다. 

name 속성의 이름은 MemberVO에서 설정해 준 변수명과 동일해야 합니다.

 

 

③ jquary url 코드를 추가해 줍니다.

jsp의 head 부분인 title과 link 사이에 넣어줍니다.

 

<script
  src="https://code.jquery.com/jquery-3.4.1.js"
  integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
  crossorigin="anonymous"></script>

 

④ body의 제일 하단에 script 코드를 추가해 줍니다.

로그인 버튼 클릭시 작동되는 메서드를 작성해 줍니다.

로그인 버튼 클릭시 메서드가 정상적으로 잘 작동하는지 확인하기 위해 alert() 코드를 추가해 줍니다.

 

 

⑤ 테스트를 해줍니다.

 

 

⑥ 테스트가 정상적으로 작동 된걸 확인 했다면 alert() 코드는 지워 줍니다.

로그인 버튼을 클릭 했을 때 로그인 메서드가 서버에 요청하는 코드를 추가해줍니다.

 

 

<script>
	/* 로그인 버튼 클릭 메서드 */
	$(".login_button").click(function(){
		/* 로그인 메서드 서버 요청 */
		$("#login_form").attr("action","/member/login");
		$("#login_form").submit();
	});
</script>

 

 

 

2. 로그인 처리 메서드 작성

 

MemberController.java 에서 로그인 기능을 수행 할 수 있도록 메서드를 작성해 줍니다.

파라미터로 HttpServletRequest와 RedirectAttrbutes와 MemberVO를 사용합니다.

 

MemberVO는 데이터를 전달 받기 위해, HttpServletRequest는 로그인 성공 시 session에 회원 정보를 담기 위해, RedirectAttrbutes는 로그인 실패시 리다이렉트 된 로그인 페이지에 실패를 의미하는 데이터를 전송하기 위해 사용 됩니다.

 

 

프로그램을 실행시킨 후, 로그인 페이지에 아무 값을 입력해 줍니다.

console 창에 입력한 데이터 값이 넘어와 주는지 확인해 줍니다.

 

 

 

 

👀❗여기서 잠깐❗👀 - HttpServletRequest란?

웹브라우저 사용자인 클라이언트 로부터 서버로 요청이 들어오면
서버에서 HttpServletRequest를 생성하며, 요청정보에 있는 패스로 매핑된 서블릿에게 전달해 줍니다.
이렇게 전달받은 내용들을 파라미터로 Get과 Post형식으로 클라이언트에게 전달하게 됩니다.

 

 

 

 

👀❗여기서 잠깐❗👀 - RedirectAttrbutes란?

RedirectAttrbutes는 redirect시 데이터를 전달할 수 있는 방법 중 하나입니다.
특정 속성을 리다이렉트 되는 뷰페이지에서 사용할 수 있도록 전달 할 수 있습니다. 

 

 

 

 

 

변수 선언 및 초기화를 진행해 줍니다.

 

session 변수를 사용하기 위해 session을 선언 해주고, request.getSession()으로 초기화 해줍니다.  

MemberVO를 선언하고 MemberService.java에 있는 memberLogin 메서드로 초기화 해줍니다. 전달받은 member 변수를 인자로 사용합니다. 

 

memberLogin 메서드를 요청하게 되면 Mapper를 통해 로그인 쿼리가 실행되고 그 결과 값이 담긴 MemberVO 객체를 반환받아서 mvo에 저장됩니다.

 

 

 

if문으로 로그인 실패 시 와 성공시를 구별해 줍니다.

 

아이디와 비밀번호가 존재하지 않을 경우 mvo는 null값이 저장됩니다. 따라서 로그인 실패의 경우를 알리기 위해 return 값에 login페이지로 리다이렉트 되도록 return 값에 넣어 줍니다.

 

아이디와 비밀번호가 존재할 경우, mvo 값은 memberId, memberName, adminCk, money, point 데이터가 담인 MemberVO 객체가 저장됩니다. 또한 로그인 성공을 알리기 위해 메인페이지로 리다이렉트 되도록 return 값을 지정해 줍니다.

 

return 문으로 가기 전 실패일 경우 RedirectAttributes(rttr)에 실패를 의미하는 데이터를, 성공일 경우 session에 변수 mvo에 담긴 데이터를 저장하는 코드를 추가해 줍니다. 

 

 

 

 

3. 테스트

 

DB에 저장된 아이디와 패스워드를 입력할 경우 ↓↓↓

 

 

 

DB에 저장되지 않은 아이디와 패스워드를 입력할 경우 ↓↓↓

 

 

콘솔창 ↓↓↓

 

 

 

 

 

 

 

 

 

 

이상입니다 ヾ(≧▽≦*)o 2

 

 

 

 

 

 

 

 

 

 

 

참고 : Kim VamPa (tistory.com) 👍

728x90
반응형