목차
1. 핸들러
1) 개요
웹 요청을 실제로 처리하는 객체를 핸들러라고 한다. 핸들러에는 여러 종류가 있을 수 있다. 따라서 특정 핸들러를 찾기 위해 핸들러 매핍 정보를 통해 핸들러를 조회하게 된다. 아래의 코드를 보자
private final Map<String, Object> handlerMappingMap = new HashMap<>();
public FrontControllerServletV5() {
//핸들러 맵핑 정보
handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3());
handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3());
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 핸들러 가져오기
String requestURI = request.getRequestURI();
Object handler = handlerMappingMap.get(requestURI);
}
}
예를 들어, url: /front-controller/v5/v3/members/new-form 의 요청인 경우 핸들러는 MemberFormControllerV3()의 객체일 것이다. 이 핸들러는 key인 requestURI로 조회할 수 있다.
2. 어댑터
핸들러마다 각각 그 핸들러를 처리해주는 것이 필요한데 이것이 바로 어댑터이다. 어댑터 또한 각 핸들러의 숫자만큼 필요하다. 예를 들어 V3 핸들러에는 V3 전용 어댑터가 필요하다.
FrontController에서 어댑터의 메서드를 통해 핸들러를 처리하게 된다.
본 포스팅은 김영한님 인프런 강의내용을 바탕으로 복습을 위해 작성하였습니다. 강의를 통해 배운 개념을 바탕으로 추가적으로 공부한 부분과 간단한 코드 예제를 작성하였습니다. 코드 전체를 복사한 것이 아니라 임의로 수정하거나 생략하였습니다.
'백엔드 > Spring' 카테고리의 다른 글
[Spring] 스프링 HTTP 요청 받기 (0) | 2022.07.22 |
---|---|
[Spring] 스프링 MVC - 구조 이해 (0) | 2022.07.11 |
[Spring] FrontController로 View분리, Model 추가 등 실습해보기 예제 (0) | 2022.06.11 |
[Spring] 서블릿, MVC 패턴 (0) | 2022.06.10 |
[Spring] 서블릿 (0) | 2022.06.09 |