-
*해당 프로젝트 기술은 메아리 프로젝트에서 제가 담당했었던 기능 분야 쪽만 기술 합니다!! 이외엔 팀원들과의 합작입니다.
앞서 서술한 회원가입 시스템에서 이어지는 내용이다. 회원가입 부분 확인은 다음 링크에서.
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 댓글 (비로그인 댓글 허용하지 않습니다.)