본문 바로가기
Develop/Spring

[5.모델2방식과 스프링MVC]2.스프링MVC의 컨트롤러-1

by jaekk 2018. 8. 13.

스프링 MVC 컨트롤러 처리

1)파라미터 수집

사용자 요청에 필요한 데이터 추출->VO(Value Object), DTO(Data Trasfer Object)로 변환

2)애너테이션 사용(xml, 애너테이션 둘 다 사용 가능)

3)로직의 집중- 메서드별 컨트롤러 지정 가능


스프링 특징

1)상속, 인터페이스 구현x

2)메서드에 대한 제약x(파라미터, 리턴타입)

3)스프링 MVC가 제공하는 클래스 존재


servlet-context.xml

MVC관련 설정


1) <annotation-driven>

클래스 선언에 애너테이션을 이용해서 컨트롤러를 작성할 수 있다는 선언

2) InternalResourceViewResolver

뷰 처리 방법

경로: '/WEB-INF' 

'/WEB-INF'는 브라우저에서 직접 접근할 수 없는 경로, 컨트롤러 호출이 우선되는 모델2방식에 맞는 구조임

3) <resource>

웹, CSS, JavaScript파일과 같은 고정자원들의 위치

4) <component-scan>

base-package속성값에 해당하는 패키지 내부의 클래스들을 조사한다는 뜻

<annotation-driven>과 연동하여 사용


자주 사용되는 애너테이션

 애너테이션 

설명 

 사용 

 @Controller

 스프링 MVC의 컨트롤러 객체 명시

 클래스 

 @RequestMapping 

 특정 URI에 매칭되는 클래스나 메서드 명시 

 클래스, 메서드 

 @Requestparam 

 요청에 특정한 파라미터의 값을 찾아낼 때 사용 

 파라미터 

 @RequestHeader

 요청에서 특정 HTTP 헤더 정보 추출 

 파라미터 

 @PathVariable 

 현재 URI에서 원하는 정보 추출 

 파라미터 

 @CookieValue 

 쿠키가 존재할 경우, 쿠키의 이름을 사용해서 쿠키 값 추출 

 파라미터 

 @ModelAttribute 

 자동으로 해당 객체를 뷰까지 전달  

 메서드, 파라미터 

 @SessionAttribute 

 세션상에서 모델 정보 유지하고 싶은 경우 

 클래스

 @InitBinder

 파라미터 수집하여 객체로 만들 경우 커스터마이징 

 메서드 

 @ResponseBody

 리턴타입이 hTTP응답메서지로 전송 

 메서드, 리턴타입 

 @RequestBody

 요청 문자열이 파라미터로 전달 

 파라미터 

 @Repository 

 DAO 객체 

 클래스 

 @Service 

 서비스 객체 

 클래스 





댓글