본문 바로가기
Backend/Spring

[Spring _MVC ④] 로그인 기능 구현 (STS / MVC 패턴 / Mybatis / 스프링 입문 / 백엔드 / 웹개발)

by 비전공자 기록광 2021. 5. 7.
반응형

2021.04.18 - [IT 독학/WEB] - [Spring _MVC ①] CRUD 게시판 구현 개발환경 설정 (STS / MVC 패턴 / Mybatis / 스프링 입문 / 백엔드 / 웹개발)

2021.05.02 - [IT 독학/WEB] - [Spring _MVC ②] CRUD 게시판 구현 C R 기능 (STS / MVC 패턴 / Mybatis / 스프링 입문 / 백엔드 / 웹개발)

2021.05.02 - [IT 독학/WEB] - [Spring _MVC ③] CRUD 게시판 구현 U D 기능 (STS / MVC 패턴 / Mybatis / 스프링 입문 / 백엔드 / 웹개발)

 

 

이전까지 스프링을 통한 MVC 패턴의 CRUD 게시판을 만들어봤다.

이번에는 로그인 기능까지 추가해보겠다.

 

전에 jsp 로 회원관리 프로그램을 만든 포스팅을 참고하면 더 좋을 것 같다.

▶jsp 회원관리 프로그램

2021.02.21 - [IT 독학/WEB] - [JSP_MVC ④] 회원관리 프로그램 만들기 ( 로그인 기능/ 웹개발 기초 / 웹개발 독학 / 백엔드 / 웹 프로그래밍)

 

 

1. 회원 정보 DB 테이블 생성

 

 

회원 테이블을 만들어주고 회원도 하나 추가해줬다.

 

 

2. Dto, Biz, Dao, Controller 생성

 

2-1. MemberDto.java

 

일단 먼저 회원 dto를 만들어줘서 객체, 기본 생성자, 매개변수 생성자, getter&setter을 만들어줬다. 

 

 

2-2. MemberBiz.java / MemberBizImpl.java

 

 

biz와 bizimpl을 만들어주고 상속과 @Service 명시까지 해줬다.

 

 

2-3. MemberDao.java / MemberDaoImpl.java

 

dao와 daoimpl을 만들어주고 상속과 @Repository 명시도 해줬다.

 

2-4. MemberController.java

 

 

@Controller 명시와 실행시 콘솔창에 찍혀 메서드 관리를 도와주는 logger을 추가해줬다.

 

 

3. member-mapper.xml 생성

 

mybatis 와 연결하는 회원 관리 쿼리문을 작성할 xml 을 작성해줬다.

 

여기서 중요한건 Dao의 namespace와 mapper의 namespace가 다르면 오류가 발생한다. 주의하자..

 

 

4. config.xml 설정

 

 

마지막으로 config.xml 에 mapper 정보를 추가해줬다.

 

 

5. browser.html 에 로그인 요청 > Controller

 

 

a 태그로 로그인을 누르면 login.do 요청이 가도록 해줬다.

 

 

controller에서 login.do 요청을 받아줘서 곧바로 login.jsp로 페이지 전환을 해줬다.

 

6. login.jsp 생성

로그인 창을 만들어줬다.

form으로 테이블을 감싸줬고 로그인 버튼을 누르면 submit되도록 했다.

요청은 login이라는 이름으로 userlogin.do 로 보내줬다.

 

 

7. Controller > Biz > BizImpl > Dao > DaoImpl 

 

controller에서 userlogin.do요청을 받아줬다. 그리고 POST 방식임을 명시해줬다.

 

회원이 로그인 후 그 상태를 유지하기 위한 session도 추가해줬다.

일단 이 작업의 내용은 biz의 login() 으로 넘겨줬다.

 

또 biz는 bizimpl로... dao로... daoimpl로 넘겨줬다.

daoimpl에서는 member-mapper에서 쿼리문의 아이디인 login의 결과를 dto 변수에 담아주기로 했다.

 

8. member-mapper.xml

 

member-mapper에 login에 사용할 쿼리문을 작성해줬다.

받아온 파라미터 타입과 보내줄 타입은 Dto라고 명시해줬다.

 

 

이후 다시 daoimpl > dao > bizimpl > biz > controller로 리턴리턴리턴해서

 

리턴받은 res를 가지고 로그인이 됐는지 안됐는지 본다.

 

만약 res가 null이면 우리 stsmember 테이블에 회원이 없다는 뜻이니 회원이 아니거나, 아이디/비밀번호가 틀렸다는 뜻이니 다시 login.do요청을 보내주고 

 

res가 null이 아니라면 로그인이 됐다는 뜻이니 session으로 해당 회원의 정보를 넘겨주고 list로 넘어가준다.

 

 

실행하면 이렇게 잘 뜬다.

 

로그인이 안되는 경우는 로그인 창으로 다시 가주고, 로그인이 된 경우는 게시판 목록으로 보내줬다.

 

 

다음은 세션에 대한 실습을 해보겠다.

2021.05.18 - [IT 독학/WEB] - [Spring _MVC ⑤] 세션 관리 및 활용(STS / MVC 패턴 / Mybatis / 스프링 입문 / 백엔드 / 웹개발)

반응형

댓글