inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

백엔드 프레임워크 만들기 (개정판)

단독으로 프로젝트를 설정하는 방법

getRequestDispatcher() 질문드립니다.,

1599

아효

작성한 질문수 4

0

선생님 안녕하세요..

뒤에 부분에 나오는지는 모르겠지만 아직 초반부이고 잘 몰라 질

문드립니다.

getRequestDispatcher() 가 포워딩 역할이고?

이 객체를 .forward(req,res)에서 할 때

여기서 foward() 메서드이 다른 서블릿에게

매개변수로 넘겨주는 걸

객체 바인딩이라고 보아도 되는지 질문 드립니다.

aop java oop

답변 1

1

제로

안녕하세요. 제로입니다.

챕텨 1 MasterController.java 를 보면 아래 코드가 있습니다.
그걸 기준으로 설명드릴께요.

RequestDispatcher dispatcher = request.getRequestDispatcher(jspUrl);
dispatcher.forward(request, response);

- getRequestDispatcher() 가 포워딩 역할인지?

코드를 그대로 읽어보면
request 객체에 있는 getRequestDispatcher() 기능을 통해
dispatcher 객체를 가져온 뒤
dispatcher 객체에 있는 forward() 기능을 사용함을 알 수 있습니다.

그렇기 때문에 getRequestDispatcher() 는 포워딩을 하는게 아닌
RequestDispatcher 클래스로 포장된(형태가 정해진)
dispatcher 객체를 얻을 수 있는 기능입니다.

실제 포워딩은 dispatcher 객체에 있는 forward() 기능을 통해 합니다.

- 다른 서블릿에 넘기는지

dispatcher.forward(request, response);
기능은 출력을 다른 서블릿으로 넘기는게 아닙니다.
request, response 객체를 같은걸 쓰기 때문입니다.

- 객체바인딩이라고 봐도 되는지

이후 강의때 IOC 와 DI 를 설명할텐데

거기에는 동적으로 클래스를 로드 하고 객체를 생성하기 위한
생성자(초기값)을 개발자의 코드가 아닌 데이터로 실행하는 걸 볼 수 있습니다.

좀 어렵게 이야기 했는데

객체바인딩은 개발자의 코드가 아닌 데이터로
객체를 만들어내는 과정이라 볼 수 있고

그렇게 보면
RequestDispatcher dispatcher = request.getRequestDispatcher(jspUrl)
코드를 통해 만들어진 dispatcher 객체는 객체바인딩을 통해 만들어 졌다고 볼 수 있습니다.

jspUrl 이 데이터 역할을 합니다.

질문 주셔서 감사합니다.

코딩 테스트 All-in-One(Java)' 강의 노션 교재 권한문의

0

6

1

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

5

2

중복내용 제보?!

1

12

2

태어난김에 세계일주 시간 초과

0

10

1

커리큘럼 중 정렬 관련 질문

0

12

1

코테 사이트 로그인 불가

0

20

1

여러 파드 환경에서 단일 실행 보장 방식

0

22

2

XAMPP에서 Apache, DB 재기동 시 접속안되는 문제

0

16

1

실습 권한이 없네요··· 이건 ··· 좀··· 401 에러떠요

0

27

3

inheritance startegy 선택시 고려사항

0

18

1

[할인쿠폰] 코테의 바이블[JAVA] 50% 할인 쿠폰 관련

0

22

1

Entity 동등성 비교

0

17

1

이제 막 자바 문법 배웠는데, 이 강의를 수강해도 괜찮을까요?

0

172

1

섹션 2 의 심화 파트에 대한 (파일올리기) 질문이에요

0

201

2

inflearn08 프로젝트에서 FW_VIEW 테이블이 KEY라는 칼럼이 없다고 해요.

0

418

1

MasterController에서 ResourceBundle.getBundle() 질문입니다!

0

428

1

m1 맥북 환경 구성 오류

0

642

2

혹시 강의 관련된 내용을 블로그에 정리해서 올려도 되나요?

0

481

1

inflearn01에서 [APP_ROOT]는 어떻게 처리해야 하나요?

0

369

1

인텔리제이 디버그 모드에서는 어떻게 쓰레드를 볼 수 있나요?

0

2012

1

인텔리제이 컴파일 에러

1

1843

11

프로젝트 생성에 대한 설명을 받을 수 있을까요?

0

353

4

개정판 이전 강의에 있던 질문과 답입니다.

0

380

0

개정 이전 버전 질문도 여기에 올려도 되는지 궁금합니다.

0

414

2