Spring MVC
서블릿 API를 기반으로 클라이언트의 요청을 편리하게 처리해주는 프레임워크
서블릿(Servlet)
클라이언트의 요청을 처리하도록 특정 규약에 맞추어서
Java코드로 작성하는 클래스파일
서블릿 컨테이너중 서블릿들이 웹애플리케이션으로 실행되게 해주는 아파치톰캣이 있다
M : Model
데이터를 클라이언트에게 돌려주는 결과데이터
서비스계층:클라이언트의 요청사항을 구체적으로 처리하는 영역
비즈니스 로직: 실제로 요청사항을 처리하기 위해 Java코드로 구현한 것
V : View
model 데이터를 이용해서 웹 브라우저같은 클라이언트 애플리케이션의
화면에 보이는 리소스를 제공
View의 기술
HTML 페이지 출력
PDF,Excel 등 문서형태 출력
XML,JSON 특정형식의 포맷으로의 변환
model 데이터를 특정 프로토콜 형태로 변환해서 데이터를 클라이언트측에 전송(특정형식의 데이터만 가능)
장점 : 프엔과 백엔드의 구분이 명확해져서 개발 및 유지보수가 용이
프엔이 비동기 클라이언트 애플리케이션을 만드는것이 가능하다
JSON(javaScript Object Notation)
Spring MVC에서 클라이언트 애플리케이션과 서버애플리케이션이 주고받는 데이터형식
{"속성" : "값"} 형태
C : Controller
클라이언트 측의 요청을 직접적으로 받는 엔드포인트
model과 view의 중간에서 상호작용을 해주는 역할
클라이언트 요청 - 비즈니스로직 - Model데이터 생성 - Model데이터를 View로 전달
엔드포인트 : 컴퓨터와 네트워크에 연결하고 컴퓨터 네트워크와 정보를 교환하는 물리적 디바이스
(1) 클라이언트가 요청을 전송하면 DispatcherServlet클래스에 요청이 전달된다
(2) DispatcherServlet은 클라이언트 요청을 처리할 Controller에 대한 검색을 HandlerMapping 인터페이스에게 요청한다
(3) HandlerMapping은 클라이언트 요청과 매핑되는 핸들러객체를 다시 DispatcherServlet에게 리턴해준다
(핸들러객체는 해당 핸들러의 Handler메서드 정보를 포함하고 있다
Handler메서드는 Controller클래스 안에 구현된 요청 처리 메서드를 의미한다)
(4)
Controller 핸들러 메서드 애너테이션
@RequestParam
쿼리 파라미터, form-data,x-www-form-urlencoded 등의 형식으로 전달되는 요청 데이터를 바인딩해서 사용하게 해준다
@RequestHeader
HTTP request header의 key/value 쌍의 데이터에 접근할 수 있도록 해준다
@PostMapping에서 주로 사용!!
@RequestBody
request body를 읽어서 지정한 java객체로 변환해준다
@RequestPart
multipart/form-data형식의 request 데이터를 part별로 바인딩하게 해준다
@PathVariable
@RequestMapping에 패턴 형식으로 정의된 URL의 변수에 바인딩할 수 있게 해준다
@MathrixVariable
URL 경로 새그먼트 부분에 key/value 쌍으로 된 데이터에 바인딩 할 수 있게 해준다
HttpEntity
request header와 body에 접근할 수 있는 컨테이너 객체를 사용할 수 있다
Controller 핸들러 메서드의 Argument 알아보기 :: IT Village (tistory.com)
느낀점
내용이 어려운건 아닌데 양이 너무 많아서 정신이 없당...
그리고 오타때문에 시간을 너무 많이 썼다ㅠㅠ
밑줄 그어진거 확인 잘 해야지......😭😭😭😭😭
대문자소문자 확인 잘하자...
'개발공부🌷 > Spring MVC' 카테고리의 다른 글
Spring MVC JPA (0) | 2023.11.28 |
---|---|
Spring MVC Data JPA (0) | 2023.11.27 |
Spring MVC 예외처리 (0) | 2023.11.23 |
Spring MVC 서비스계층 ,Mapper (0) | 2023.11.23 |
Spring MVC API 계층 2 (0) | 2023.11.22 |