Spring Framework/Web on Servlet Stack(72)
-
@SessionAttributes
@SessionAttributes 어노테이션은 HTTP 세션에 특정 모델 속성(Model Attribute)을 저장하여 여러 요청 간에 이 속성을 유지하고 사용할 수 있도록 해줍니다. 이는 주로 폼 데이터를 여러 단계에 걸쳐 처리하거나, 특정 상태를 유지할 필요가 있을 때 유용합니다.기본 개념@SessionAttributes는 컨트롤러 클래스 레벨에 적용되며, 해당 컨트롤러에서 사용되는 특정 모델 속성이나 속성 타입을 세션에 저장하도록 선언합니다.이 어노테이션을 사용하면, 한 번 요청에서 모델에 추가된 속성(예: pet 객체)이 여러 요청에 걸쳐 유지됩니다. 모델 속성은 세션에 저장되며, 다른 컨트롤러 메서드에서 이를 다시 꺼내 사용할 수 있습니다.예시 상황:사용자가 반려동물 정보를 입력하는 폼을 여러 ..
2024.10.09 -
@ModelAttribute
@ModelAttribute 어노테이션은 HTTP 요청의 파라미터를 객체에 바인딩하는 데 사용되는 스프링 MVC의 기능입니다. 이를 통해 클라이언트가 전송한 폼 데이터나 쿼리 스트링 파라미터를 자동으로 객체에 매핑할 수 있습니다. 또한, 이 객체는 뷰에서 사용될 모델에 추가될 수 있습니다. 스프링은 여러 방식으로 @ModelAttribute에 해당하는 객체를 생성하고 바인딩할 수 있으며, 유효성 검사 및 데이터 바인딩 과정에서의 오류 처리도 가능합니다. 기본 개념@ModelAttribute는 주로 컨트롤러 메서드의 아규먼트로 사용되어, 요청 파라미터를 자동으로 특정 객체에 바인딩합니다. 예시 상황:클라이언트가 아래와 같은 HTTP 요청을 통해 데이터를 전송했다고 가정합니다.POST /owners/1/pe..
2024.10.09 -
Annotated Controllers[3] - @CookieValue
@CookieValue 어노테이션은 HTTP 요청에 포함된 쿠키 값을 메서드의 아규먼트로 바인딩하는 데 사용됩니다. 이를 통해 컨트롤러에서 HTTP 요청에 포함된 특정 쿠키 값을 손쉽게 처리할 수 있습니다.기본 개념HTTP 요청을 통해 서버로 전송되는 쿠키는 클라이언트 측에서 저장하고 있는 정보입니다. 서버는 이 쿠키 값을 활용해 세션을 추적하거나 사용자 정보를 관리할 수 있습니다. @CookieValue 어노테이션을 사용하면 특정 쿠키의 값을 직접 아규먼트로 받을 수 있습니다.예시 상황:클라이언트에서 서버로 다음과 같은 HTTP 요청이 있다고 가정합니다.Cookie: JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84위 요청에서 JSESSIONID 쿠키의 값을 컨트롤러 메서드..
2024.10.09 -
@RequestHeader
@RequestHeader 어노테이션은 HTTP 요청의 헤더 값을 메서드 아규먼트에 바인딩하는 데 사용됩니다. 이 어노테이션을 사용하면 특정 헤더 값을 쉽게 메서드에서 받을 수 있으며, 스프링이 자동으로 해당 값을 제공해 줍니다. 예시 설명HTTP 요청에 포함된 헤더 중 특정 헤더 값을 가져오는 방법을 생각해봅시다. 아래와 같은 HTTP 요청 헤더가 있다고 가정합니다.Host: localhost:8080Accept: text/html,application/xhtml+xml,application/xml;q=0.9Accept-Language: fr,en-gb;q=0.7,en;q=0.3Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;..
2024.10.09 -
Annotated Controllers[1]
Spring MVC는 @Controller와 @RestController 컴포넌트가 Http request 매핑, request 입력, 예외 처리 등을 애노테이션을 통해 표현할 수 있는 애노테이션 기반 프로그래밍 모델을 제공합니다. 애노테이션 컨트롤러는 유연한 메서드 시그니처를 가지며, 기본 클래스를 확장하거나 특정 인터페이스를 구현할 필요가 없습니다. 다음은 애노테이션으로 정의된 컨트롤러의 예입니다:@Controllerpublic class HelloController { @GetMapping("/hello") public String handle(Model model) { model.addAttribute("message", "Hello World!"); retur..
2024.10.06 -
PathPattern
✅ 1.1 PathPattern이란?PathPattern은 Spring 5.3부터 도입되고, Spring 6에서 정식 디폴트 경로 매핑 메커니즘으로 강화된 클래스입니다.기존의 Ant-style 경로 패턴(/**, /*, ?, {variable} 등)을 보다 빠르고 정확하게 처리하기 위한 새로운 방식입니다. ✅ PathPattern과 URL Path 매칭✔ 핵심 개념:PathPattern: 경로 매핑 패턴을 미리 파싱한 객체PathContainer: 클라이언트 요청 URL 경로(/posts/123/comments)를 **분절된 경로(path segment)**로 표현한 객체이 둘을 비교하여 핸들러 매핑을 수행합니다. ✅ 기존 방식 vs PathPattern 항목 AntPathMatcher (기존) ..
2023.06.23