맨들맨들 돌덩이
Home
  • 분류 전체보기 (439)
    • 프로젝트 (14)
    • NOTICE (2)
    • 개발 (206)
      • Unity (12)
      • JAVA (20)
      • SPRING (9)
      • DB (10)
      • FronT (14)
      • 알고리즘 (16)
      • 이코테 (25)
      • Python (60)
      • Arduino (4)
      • WEB (18)
      • C++ (17)
    • 게임 (33)
      • DNF (31)
      • LostArk (2)
    • KT_DS (93)
      • 보호관리용 (3)
    • 실습코드 (64)
      • 실습 코드 (63)
    • 독서 (2)
      • 생각넓히기 (2)
    • Setting (17)
    • 일상 (8)
ALL
  • 분류 전체보기 (439)
    • 프로젝트 (14)
    • NOTICE (2)
    • 개발 (206)
      • Unity (12)
      • JAVA (20)
      • SPRING (9)
      • DB (10)
      • FronT (14)
      • 알고리즘 (16)
      • 이코테 (25)
      • Python (60)
      • Arduino (4)
      • WEB (18)
      • C++ (17)
    • 게임 (33)
      • DNF (31)
      • LostArk (2)
    • KT_DS (93)
      • 보호관리용 (3)
    • 실습코드 (64)
      • 실습 코드 (63)
    • 독서 (2)
      • 생각넓히기 (2)
    • Setting (17)
    • 일상 (8)
블로그 내 검색

맨들맨들 돌덩이

티스토리 생일 : 2020.11.18. 모든 문의 : highcw@naver.com

  • 개발/WEB

    Web_ project 진행_6 : Spring 회원 로그인 시스템

    2021. 11. 5.

    by. KAEY

    *해당 프로젝트 기술은 메아리 프로젝트에서 제가 담당했었던 기능 분야 쪽만 기술 합니다!! 이외엔 팀원들과의 합작입니다.

     


     

    앞서 서술한 회원가입 시스템에서 이어지는 내용이다. 회원가입 부분 확인은 다음 링크에서.

     

     

    Web_ project 진행_2 : Spring 회원가입 구현 :: 절실성실 (tistory.com)

     

    Web_ project 진행_2 : Spring 회원가입 구현

    *해당 프로젝트 기술은 메아리 프로젝트에서 제가 담당했었던 기능 분야 쪽만 기술 합니다!! 이외엔 팀원들과의 합작입니다. 사전에 계획된 회원가입에 사용될 맴버 테이블을 참고하여 VO파일을

    kaey.tistory.com

     


    사용자에게 로그인 요청이 들어왔을 때, 처리해줄 tiles와 controller를 작성한다.

    *모든 controller, DAO, service는 인터페이스 파일과 구현 파일 2개로 작성된다.

     

     

     

    com.mySpring.myapp.member.controller.MemberControllerImpl

    @RequestMapping(value = "/loginForm", method = RequestMethod.POST)
    	public ModelAndView login(@ModelAttribute("member") MemberVO member,
    				              RedirectAttributes rAttr,
    		                       HttpServletRequest request, HttpServletResponse response) throws Exception {
    	ModelAndView mav = new ModelAndView();
    	memberVO = memberService.login(member);

    로그인 요청이 들어오면, 해당 요청에 담긴 member의 값을 기준으로 처리한다.

    ModelAndView를 생성하고, 그 후 만들어놓은 로그인 서비스에 member를 보내서 처리한다.

     

     

     

    그 후 처리 과정을 if문으로 처리한다. 다음 로직은 간단한 로그인 처리 과정이다.

     

    사용자의 로그인 요청
    > (1)아이디와 비밀번호가 제대로 입력 됐는가? > (2)입력은 됐으나 DB값과 일치? > 로그인 성공
     >> 아닐 시 다시 입력하세요. 출력                                >>일치하지 않다면 로그인 실패

    이에 해당하는 코드는 다음과 같다.

     

     

     

    if(memberVO != null) {
    		....
    	}else {
    	   rAttr.addAttribute("result","loginFailed");
    	   mav.setViewName("redirect:/loginForm");
    	}

    위의 코드는 (1)에 해당하는 입력이 제대로 됐는지를 판단해주는 로직이다.

    서비스 > DAO > xml 을 거쳐서 아이디와 비밀번호를 매칭해서, 값을 가져오는데 이 일치하는 값이 없다라는 것의 의는 다음과 같다. 

    입력한 아이디 & 비밀번호 모두 일치한 것이 담기지 않았다면. 회원이 아니거나 비밀번호가 일치하지 않는 것.

    즉슨 로그인에 실패했다는 의미. 따라서 null 값이라는 의미의 else{ } 에서 로그인에 실패했다는 처리를 한다.

     

     

     

     

    	    HttpSession session = request.getSession();
    	    session.setAttribute("member", memberVO);
    	    session.setAttribute("isLogOn", true);
    	    String action = (String)session.getAttribute("action");
    	    session.removeAttribute("action");
    	    if(action!= null) {
    	       mav.setViewName("redirect:"+action);
    	    }else {
    	       mav.setViewName("redirect:/main?result=success");	
    	    }

    (2)에 해당하는 코드는 위과 같다.

     

     

    로그인을 처리해주는 서비스 파일을 확인해보자.

     

     

    com.mySpring.myapp.member.service.MemberServiceImpl

    	public MemberVO login(MemberVO memberVO) throws Exception{
    		return memberDAO.loginById(memberVO);
    	}

     

     

     

    com.mySpring.myapp.member.dao.MemberDAOImpl

    	@Override
    	public MemberVO loginById(MemberVO memberVO) throws DataAccessException{
    		  MemberVO vo = sqlSession.selectOne("mapper.member.loginById",memberVO);
    		return vo;
    	}

     

     

     

    member.xml

      <select id="loginById"  resultType="memberVO"   parameterType="memberVO" >
    	<![CDATA[
    		select * from member	
    		where member_id=#{member_id} and member_pw=#{member_pw}		
    	]]>
      </select>

     

    이렇게 해서, service > DAO > xml 이랑 연결되서 로그인에 해당하는 값들을 해결한다.

    이전에 회원가입의 로직과 함께해서 회원가입을 한 후 그 아이디와 비밀번호로 로그인해보면, 로그인이 성공적으로 된다.

     

     


     

    저작자표시 비영리 동일조건 (새창열림)

    '개발 > WEB' 카테고리의 다른 글

    Web_ project 진행_8 : Spring Boot + Sring chat, 스프링 채팅 시스템 구현(1)  (0) 2022.04.24
    Web_ project 진행_7 : JSP을 이용하여 원하는 정보 전달하기  (0) 2021.11.17
    Web_ project 진행_5 : Spring DB 게시글 삭제 (두 개의 테이블)  (0) 2021.11.04
    Web_ project 진행_4 : Spring DB 게시글 내용 가져와서 출력  (0) 2021.11.04
    Web_ project 진행_3 : Spring 게시글 리스트 불러오기  (0) 2021.11.04

    댓글 (비로그인 댓글 허용하지 않습니다.)

    관련글

    • Web_ project 진행_8 : Spring Boot + Sring chat, 스프링 채팅 시스템 구현(1) 2022.04.24
    • Web_ project 진행_7 : JSP을 이용하여 원하는 정보 전달하기 2021.11.17
    • Web_ project 진행_5 : Spring DB 게시글 삭제 (두 개의 테이블) 2021.11.04
    • Web_ project 진행_4 : Spring DB 게시글 내용 가져와서 출력 2021.11.04
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
KAEY
#모바일 접속 차단. (PC 환경 자동 리다이렉트) #현재 블로그내 모든 광고는 티스토리(카카오)에서 게시한 광고입니다😢. #문의 이메일 : highcw@naver.com

티스토리툴바