서론
이전 시간에는 맴버 컨트롤러를 만들고, 의존관계를 설정했다.
이제 맴버 컨트롤러를 통해서 회원을 등록하고 조회하는 것을 만들자
회원 웹 기능 - 홈 화면 추가
코딩
홈 컨트롤러 추가
HomeController 클래스 추가
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping("/")
public String home() {
return "home";
}
}
회원 관리용 홈
home.html 파일 추가
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
<div>
<h1>Hello Spring</h1>
<p>회원 기능</p>
<p>
<a href="/members/new">회원 가입</a>
<a href="/members">회원 목록</a>
</p>
</div>
</div> <!-- /container -->
</body>
</html>
요청 처리 우선순위
stactic의 index.html 만들때
(매핑된 컨트롤러가) 아무것도 없으면, welcome page로 간다고 했었는데
사실, 우선순위가 있다.
localhost8080 요청이 오면
먼저 컨트롤러에서 찾아본다
ㅡ> 맵핑된 url이 있으니 컨트롤러 호출되고 끝난다
ㅡ> index.html 정적리소스는 무시된다
요청 처리 우선순위
- 컨트롤러 확인:
- 사용자가 localhost:8080과 같은 URL로 요청을 보내면, 서버는 먼저 해당 URL이 컨트롤러에 매핑되어 있는지 확인합니다.
- Spring MVC와 같은 프레임워크에서는 요청 URL과 매핑된 컨트롤러 메서드를 가장 먼저 찾습니다. 만약 해당 URL이 컨트롤러 메서드에 매핑되어 있다면, 그 메서드가 호출되고 요청 처리는 여기서 종료됩니다.
- 정적 리소스 확인:
- 만약 요청 URL에 매핑된 컨트롤러가 없다면, 서버는 정적 리소스(예: index.html, style.css, script.js 등)를 찾기 시작합니다.
- 정적 리소스는 일반적으로 /resources/, /static/, /public/와 같은 디렉터리에 위치하며, 서버는 이러한 디렉터리에서 요청한 파일을 찾습니다.
- 만약 index.html과 같은 파일이 존재하면, 해당 파일이 사용자에게 응답으로 반환됩니다.
- 웰컴 페이지:
- 만약 컨트롤러에도 매핑된 URL이 없고, 정적 리소스에도 해당 파일이 없다면, 서버는 기본적으로 설정된 웰컴 페이지를 반환하거나 404 에러 페이지를 반환할 수 있습니다.
- 일반적으로 많은 서버에서 index.html을 기본 웰컴 페이지로 설정합니다. 따라서, / 요청이 들어오면 index.html이 기본적으로 반환됩니다.
회원 웹 기능 - 등록
코딩
일단 MemberController에 코드 추가
@GetMapping(value = "/members/new") // 밑에 설명
public String createForm() {
return "members/createMemberForm";
}
}
@GetMapping(value = "/members/new") 의 이유
home.html 열어보면
/members/new라는 url로 이동하기 때문
'프레임워크 > Spring' 카테고리의 다른 글
Spring Framework 개념 구조화 (0) | 2025.03.23 |
---|---|
Controller, Service, Repository 패턴 (0) | 2025.03.18 |
[김영한] 스프링 입문(6) - 스프링 DB 접근 기술 (0) | 2024.08.22 |
[김영한] 스프링 입문(4) - 스프링 빈과 의존관계 (0) | 2024.08.20 |
[김영한] 스프링 입문(3) - 회원 관리 예제 - 백엔드 개발 (0) | 2024.08.05 |