작성
·
304
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
질문이 총 2가지 인데요.
http://localhost:8080/front-controller/v3/members/new-form 이 url을 호출하게 되었을 때 FrontControllerServletV3 클래스가 생성되는 것 까지는 이해 할 수 있는 데 그 이후에 service 매서드가 자동적으로 실행이 되는 건가요?
마지막 html 응답을 하는 부분에서
RequestDispatcher dispatcher = request-getRequestDispatcher (viewPath);
dispatcher. forward (request, response);
이렇게 하는 데 viewPath 경로의 jsp 파일에 request랑 response를 주면 어떤 과정을 통해 화면에 html이 보이게 되는 것인 지 잘 모르겠습니다. 제가 이해한 바로는 forward가 내부적으로 서버에 정보를 전달한다고 이해를 했는데 그렇게 되면 서버에서 클라이언트로 응답은 누가 하는 것인지 이해가 잘 안돼서요.
답변 1
0
안녕하세요. JuHee_Lee님, 공식 서포터즈 David입니다.
서블릿의 service를 서블릿 컨테이너가 호출하게 됩니다. ~/v3 패턴으로 요청되는 것들은 FrontControllerServletV3에서 처리하게 되고, 디테일한 처리는 컨트롤러 맵에서 특정 컨트롤러를 불러와 호출하는 것으로 진행됩니다.
service 메서드 설명 참고해주세요:)
JSP 파일은 서블릿으로 변환되어 존재합니다(최초 호출시 생성). 해당 JSP 파일을 호출하는 요청(강의에서는 ReuqestDispatcher.forward)이 들어오면 JSP 파일이 변환되어 존재하는 서블릿은 응답 본문을 작성합니다. 이 과정이 끝나면 톰캣은 응답을 클라이언트로 전달합니다.
감사합니다.