YJ의 새벽

Spring 5 ( 로그인 , 로그아웃 , 쿠키 ) 본문

Spring/Spring

Spring 5 ( 로그인 , 로그아웃 , 쿠키 )

YJDawn 2023. 4. 25. 17:20

 

 

 

--- MyBatis 설정 끝냈으니 . 

 

 

 

--- 기존 MEMBER 테이블의 컬럼들만 ,  

     새로운 MEMBER_S 테이블로 복제 .   ( NOT NULL 제약조건만 복제 )

 

--- 기존 ENROLL_DT 컬럼에 기본값 지정.

 

--- 기존 SECESSION_FL 컬럼에 기본값 지정.

 

--- 기존 MEMBER_NO 에 기본키 지정.

 

--- 기존 SECESSION_FL 에 CHECK 제약조건 추가 .

 

--- 시퀀스 생성

 

-- 테스트용 데이터 추가 .

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

memberDAO.class

--- 이메일 , 비밀번호 치고 로그인했을때, 그사람의 전화번호 받아와보자.

 

 

member-mapper.xml

--- 파라미터가 VO로 전달된 경우.  패키지+ 클래스명 모두 작성해야한다 . 

 

mybatis-config.xml

--- mybatis-config.xml 파일에서,  별칭을 따로 작성해주자

member-mapper.xml

--- member-mapper.xml 에 가서 파라미터 타입으로, 별칭 작성 .

--- 콘솔창 전화번호 확인.

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

 

이제 로그인을 해보자 .

 

 

-- resultType 에 VO 를 작성하는경우 .

  -VO의 필드명과 조회되는 컬럼명이 일치하면 자동으로 VO 객체에 값이 세팅된다.

    - java 와 DB 표기법 차이로 적용되기 쉽지않다.

-- resultMap 사용 !! 

  --SELECT 조회 결과(ResultSet)의 컬럼과 조회 결과를 옮겨담을 VO 의 필드명이 일치하지 않을때

    이를 맵핑시켜 조회결과가 필드에 세팅되게 하는 역할.

  -- type : 조회 결과를 담을 VO의 타입 또는 별칭

       id   :  만들어진 resultMap 태그를 지칭할 이름 ( 식별명 )

  -- 내부 작성된 < id >    :  PK 역할의 컬럼 - 필드 연결  

                        < result >  :  PK 제외한 나머지 컬럼 - 필드 연결

 

 

member-mapper.xml 맨윗단에 작성.

-- resultMap 을 세팅해준다 . ( 컬럼명 = 필드명 )

   id = member_rm

member-mapper.xml

-- resultMap = "member_rm"   세팅해놓은 resultMap 사용

MemberDAO.class

 

-- 디버그로 들어온값 확인하고 . 

 

-- return 받은 loginMember 가지고,  MemberServiceImpl.class 로 가자.

MemberServiceImpl.class

 

-- return 받은 loginMember 가지고 Controller 로 가자 .

 

-- Model  :  데이터를 맥 형식 ( K : V ) 형태로 담아 전달하는 용도의 객체

          --> request , session 을 대체하는 객체

     -기본 scope : request

     -session scope 로 변환하고 싶은경우

      클래스 레벨로 @SessionAttributes 를 작성.

 

-- 로그인누르면

-- 창이바뀐다.

 

 

 

 

 

--- login 성공시 ?   실패시 ?  메시지 추가하자 .

 

footer.jsp 수정

 

 

-- addFlashAttribute 는 서블릿을 한번이라도 거쳐야 실행이 된다 .

  -index.jsp  를 전체 복사 후 .   새로운 main.jsp 로 옮겨주자 .

-- main.jsp 에는 index.jsp 의 코드가 싹 다 담겨있고.

-- 기존 index.jsp 에는  main.jsp  로 forward 해주는 코드만 남겨놓자 .

-- 그후 MianController 작성.

로그인 실패시

 

 

 

 

 

--- 아이디 저장 클릭시 ,  쿠키가 저장되게 해보자 . 

-- 로그인 기능하는 Controller 에서 , 로그인 성공시 쿠키를 넣어준다.

 

 

 

 

 

 

---로그아웃을 해보자.

--로그아웃 == 세션을 없애는것 . 

   session.invalidate() .  기존 세션 무효화 방식으로는 안된다.!

-- @SessionAttributes 를 이용해서 session scope 에 배치된 데이터는

   SessionStatus 라는 별고 객체를 이용해야만 없앨수 있다 .

 

memberController.class

 

-- 로그아웃 누르면.

-- 다시돌아온다 .

 

 

 

 

 

 

 

 

 

 

Comments