로그인

login.jsp

<form class="col s12 l6 offset-l3" **action="/member/login" method="post"** >

MemberController.java

@GetMapping("/login")
	public String login() {
		// <http://localhost:8000/member/login>
		return "member/login"; // 경로 잘 써줘야함!!
	}

@PostMapping("/login")
	public ResponseEntity<String> login(String id, String passwd, HttpSession session) {

		MemberVO memberVO = memberService.getMemberById(id);

		String message = "";
		boolean isSamePasswd = false;

		if (memberVO != null) { // 일치하는 아이디 있음
			isSamePasswd = BCrypt.checkpw(passwd, memberVO.getPasswd());
			
			if (!isSamePasswd) { // 아이디는 있지만, 패스워드 불일치
				message = "패스워드가 일치하지 않습니다.";
			}
		} else { // 일치하는 아이디 없음
			message = "존재하지 않는 아이디 또는 패스워드 입니다";
		}

		if (memberVO == null || isSamePasswd == false) {
			HttpHeaders headers = new HttpHeaders();
			headers.add("Content-Type", "text/html; charset=utf-8"); // == setContentType

			String str = Script.back(message);

			return new ResponseEntity<String>(str, headers, HttpStatus.OK);
		}

		// ==============================
		// 로그인 성공 시 로그인 인증하기 
		session.setAttribute("id", id);
		
		HttpHeaders headers = new HttpHeaders();
		headers.add("Location", "/"); // redirect 경로 지정
		
		// "/"로 리다이렉트
		// 리다이렉트일 경우 HttpStatus.FOUND 지정해야함
		return new ResponseEntity<String>(headers, HttpStatus.FOUND);
	} // login

HttpEntity 를 상속 받아 구현한 클래스가 RequestEntity, ResponseEntity

⇒ 따라서 ResponseEntity 는 사용자의 HttpRequest 에 대한 응답 데이터를 포함하는 클래스

⇒ HttpStatus, HttpHeaders, HttpBody 를 포함함 (오버로딩)

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/93bdac80-f3c4-4b85-a048-49334e16bab2/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4b0a0c73-3fe2-4dae-a55f-8b9e02ddb75c/Untitled.png