Controller -> HTTP Request 메시지
로그인 API 예제
Controller 구현 ("LoginController.java")
1. "GET /login" 요청 처리 - "login-form.html" 으로 redirect 시킴 (정적 웹페이지)
로그인 처리
1. "POST /login" 요청 처리 -> Client 가 다음과 같이 요청을 보낸다고 가정
POST http://localhost:8080/login
Header
Content type: application/x-www-form-urlencoded
Body
id=superman&password=superman
2. "LoginController.java" 에서 Client 에서 입력한 id 와 password 를 받음
3.Model 설정
로그인 성공 시에만 Model 에 loginId 를 설정
- loginId 값은 Client 가 요청한 id (즉, 로그인 성공한 사용자 id)
- 로그인 성공 조건 -> id 와 password 가 동일한 문자열
if (id.equals(password)) { ... }
// 주의!!! 아래와 같이 비교하면 안 됨 (Java 문법)
if (id == password) { ... }
위와 같은 사항을 코드로 구현!
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class LoginController {
// Login 을 위한 HTML 파일 내려주기
@GetMapping("/login")
public String loginPage() {
return "redirect:/login-form.html";
}
// Login 처리
@PostMapping("/login")
public String loginProcess(
@RequestParam String id,
@RequestParam String password,
Model model
) {
if (id.equals(password)) {
model.addAttribute("loginId", id);
}
return "login-result";
}
}