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