• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

v3 프로그램 작동원리 질문

24.01.24 02:16 작성 조회수 213

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
질문이 총 2가지 인데요.

  1. http://localhost:8080/front-controller/v3/members/new-form 이 url을 호출하게 되었을 때 FrontControllerServletV3 클래스가 생성되는 것 까지는 이해 할 수 있는 데 그 이후에 service 매서드가 자동적으로 실행이 되는 건가요?

  1. 마지막 html 응답을 하는 부분에서


    RequestDispatcher dispatcher = request-getRequestDispatcher (viewPath);

     

    dispatcher. forward (request, response);


    이렇게 하는 데 viewPath 경로의 jsp 파일에 request랑 response를 주면 어떤 과정을 통해 화면에 html이 보이게 되는 것인 지 잘 모르겠습니다. 제가 이해한 바로는 forward가 내부적으로 서버에 정보를 전달한다고 이해를 했는데 그렇게 되면 서버에서 클라이언트로 응답은 누가 하는 것인지 이해가 잘 안돼서요.

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2024.01.24

안녕하세요. JuHee_Lee님, 공식 서포터즈 David입니다.

  1. 서블릿의 service를 서블릿 컨테이너가 호출하게 됩니다. ~/v3 패턴으로 요청되는 것들은 FrontControllerServletV3에서 처리하게 되고, 디테일한 처리는 컨트롤러 맵에서 특정 컨트롤러를 불러와 호출하는 것으로 진행됩니다.

service 메서드 설명 참고해주세요:)

https://github.com/javaee/servlet-spec/blob/master/src/main/java/javax/servlet/GenericServlet.java#L277

 

  1. JSP 파일은 서블릿으로 변환되어 존재합니다(최초 호출시 생성). 해당 JSP 파일을 호출하는 요청(강의에서는 ReuqestDispatcher.forward)이 들어오면 JSP 파일이 변환되어 존재하는 서블릿은 응답 본문을 작성합니다. 이 과정이 끝나면 톰캣은 응답을 클라이언트로 전달합니다.

감사합니다.