해결된 질문
작성
·
305
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
서블릿을 따로 공부한 적이 없어서 구글링을 조금 해 봤지만 제대로 이해한 건지 확신이 안 갑니다. 제가 이해한 내용 중 오류가 있는지 궁금합니다.
아래 코드는 강의에서 사용했던 코드입니다.
@WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-body-json")
public class RequestBodyJsonServlet extends HttpServlet {
.
.
.
}
RequestBodyJsonServlet이 서블릿인 이유는 HttpServlet를 상속했기 때문이며, @WebServlet 때문에 서블릿인 것은 아니다. 하지만 서블릿으로서 동작하려면 @WebServlet이 필요하다.
@WebServlet은 이 서블릿에 URL을 매핑하기 위함이며, @ServletComponentScan이 서블릿을 서블릿 컨테이너에 등록할 때도 @WebServlet이 붙은 클래스들을 서블릿 컨테이너에 등록한다.
RequestBodyJsonServlet이 HttpServlet를 상속하여 서블릿의 조건을 만족하고, @WebServlet을 클래스 레벨에 붙임으로써, @ServletComponentScan에 의해 서블릿 컨테이너에 등록될 수 있게 되었지만 스프링 빈으로 등록된 것은 아니다.
DispatcherServlet은 스프링 빈으로 등록된다.
저는 이렇게 이해했는데 틀린 내용이 있는지 궁금합니다.
답변 1
1
안녕하세요. 11 1님
1~3번 까지는 생각하신 내용이 맞습니다. 4번의 경우 DispatcherServlet은 스프링 빈으로 등록되는 것이 아니라 서블릿으로 등록됩니다.
감사합니다.
서블릿으로 등록되는 건 강의에서 설명이 나와서 알고 있었는데
스프링 빈으로 등록된다는 말을 구글링하다가 봤는데 잘못된 내용이었나 보네요.. 답변 감사합니다!