정리노트/팀프로젝트

[스프링] 로그인 구현

망고고래 2024. 2. 15. 09:34

회원가입 구현에서 작성한 도메인 Member를 사용한다.

package com.springmvc.domain;

public class Member {
	private String mem_id;
	private String mem_pw;
	private String mem_name;
	private String mem_nickname;
	private String mem_phone;
	private String mem_email;
	private String mem_addr;
	private String mem_addr2;
    
    //getter/setter 생략
    
	public String toString() {
		return "Member [mem_id=" + mem_id + "mem_pw=" + mem_pw + "mem_nickname=" + mem_nickname +  "mem_phone=" + mem_phone + "mem_email=" + mem_email + "mem_addr=" + mem_addr + "mem_addr2" + mem_addr2 + "]";
	}
	
	
	public Member() {}
}

 

 

1. 로그인 뷰 페이지로 연결하는 컨트롤러 메서드 작성

	@GetMapping("/login")
	public String member_login_form() {
		System.out.println("member_login_form() 실행");
		return "/member/login";
	}

 

 

 

2. 로그인 뷰 페이지 제작

<form action="/pet_hug/member/login_check" class="form-horizontal">
    <div>
          <label for="" class="col-md-2">아이디</label> <input type="text" name="mem_id" class="input">
    </div>
    <div>
          <label for="" class="col-md-2">비밀번호</label> <input type="password" name="mem_pw" class="input">
    </div>
    <div class="form-group row mt-4">
        <div class="col-sm-offset-2 col-sm-10">
            <input type="submit" value="로그인" class="offset-md-8 submit-green">
        </div>
    </div>
</form>

 

 

3. 로그인 처리하는 컨트롤러 작성

	@GetMapping("/login_check")
	public String member_login_check(@RequestParam("mem_id") String mem_id, @RequestParam("mem_pw") String mem_pw, HttpServletRequest request) {
		System.out.println("member_login_check() 실행");
		int verify = memberService.login_check(mem_id, mem_pw);
		if(verify==1) {
			System.out.println("로그인 성공");
			session = request.getSession();
			System.out.println("request에서 세션 취득");
			session.setAttribute("sessionId", mem_id);
			System.out.println("session에 아이디 저장");
			return "redirect:/home";
		}else {
			System.out.println("로그인 실패");
			return "redirect:/home";
		}
	}

 

 

 

4. 서비스 메서드 작성

	@Override
	public int login_check(String mem_id, String mem_pw) {
		System.out.println("service.login_check 도착");
		int verify = memberRepository.login_check(mem_id, mem_pw);
		return verify;
	}

 

 

 

5. 리파지토리 메서드 작성

	@Override
	public int login_check(String mem_id, String mem_pw) {
		String sql = "select count(*) from user_mem where mem_id=? and mem_pw=?";
		int verify = this.template.queryForObject(sql, Integer.class, mem_id, mem_pw);
		return verify;
	}