Whiteship's Note

13.3.1. AbstractController and WebContentGenerator

Spring/Chapter 13 : 2007.05.10 08:41


다양한 컨트롤러들의 가장 기반이 되는 구현체인 AbstractController에서 설정할 수 있는 속성들은 다음과 같습니다.

Feature

Explanation

supportedMethods

어떤 형식의 요청을 받아 들일지 설정합니다. 보통은 GET 이나 POST 둘 중 하나며 원하는 메서드 이름으로 바꿀 수 도 있습니다. 지원 하지 않는 요청의 경우 ServletException이 발생합니다.

requiresSession

해당 컨트롤러가 작업을 할 때 Http session이 필요한지 설정합니다.

만약 필요로 하는데도 session을 담고 있는 request가 오지 않으면 SevletException이 발생합니다.

synchronizeSession

사용자의 Session을 동기화 처리해주고 싶을 때 사용합니다.

cacheSeconds

이 컨트롤러가 Http reponse에 캐쉬를 남기고 싶을 때 사용합니다.

기본값은 -1로 캐쉬를 남기지 않습니다.

useExpiresHeader

생성할 response HTTP 1.0과 호환 가능한 “Expires” 헤더를 기술합니다.

기본값은 true입니다.

useCacheHeader

생성할 responseHTTP 1.1과 호환 가능한 “Cache-Control” 헤더를 기술합니다.

기본값은 true입니다.


AbstractController를 사용하는 방법은 간단합니다. 다음과 같이 handleRequest 메소드를 구현해주면 됩니다.

package samples;

public class SampleController extends AbstractController {

    public ModelAndView handleRequestInternal(
        HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        ModelAndView mav = new ModelAndView("hello");
        mav.addObject("message", "Hello World!");
        return mav;       
    }
}

AbstractController와 Controller 간의 관계는 다음과 같습니다.
사용자 삽입 이미지

이 컨트롤러는 view 이름을 소스 코드 내부에 위치 해야 하는 단점이 있습니다. 이렇게 되면 view가 바뀔 때 마다 소스 코드를 수정해줘야 하죠.

'Spring > Chapter 13' 카테고리의 다른 글

13.4.2. SimpleUrlHandlerMapping  (0) 2007.05.11
13.4.1. BeanNameUrlHandlerMapping  (0) 2007.05.11
13.4. Handler mappings  (0) 2007.05.11
13.3.4. Command controllers  (0) 2007.05.11
13.3.3. The MultiActionController  (2) 2007.05.10
13.3.2. Other simple controllers  (4) 2007.05.10
13.3.1. AbstractController and WebContentGenerator  (0) 2007.05.10
13.3. Controllers  (0) 2007.05.09
13.2. The DispatcherServlet  (0) 2007.05.07
13.1. Introduction  (0) 2007.05.07
13. Web MVC framework  (0) 2007.05.07
top

Write a comment.