인프런 커뮤니티 질문&답변

열심인 참새님의 프로필 이미지
열심인 참새

작성한 질문수

[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]

52_FrontController와 POJO를 연결하기

나프1탄의 거의 끝나가네요 질문있습니다!

작성

·

189

0

서블릿에서 request.setAttribute 한 것을 jsp에서 사용하기위해 디스패처 포워딩을 해주었는데

이후 더 향상된 방법의 PoJo 활용 강의에서는
"PoJo파일에서 request.setAttribute 한 것을 어떻게 서블릿에서 공유가 가능한건지" 궁금합니다.

"서블릿에서 PoJo의 메서드를 사용할때 request와 response 참조변수를 인수를 줬기 때문인가요?"


만약 그렇다면 공유라는 측면에서만 봤을때 디스패처 포워딩을 사용 안하고 서블릿에서 JSP으로 service메서드에 request와 response를 파라미터로 주는 방법으로 하여도 서블릿에서 setAttribute한 것을 JSP에서 사용이 가능한건가요~??

(jsp에도 기본적으로 service메서드와 request response가 보이지는 않지만 있으므로)

이해시켜 주시면 너무 감사할거 같습니다 ㅠㅠㅠ

답변 1

0

박매일님의 프로필 이미지
박매일
지식공유자

pojo를 사용하면 pojo에서 model을 연동하게 됩니다. 그러면 model에서 넘겨받은 데이터를 pojo가 객체바인을 해주면 서블릿으로 데이터를 넘겨줄 필요가 없겠죠. 그래서 pojo에서 객체바인딩까지 해주어야해서 서블릿에서 pojo로 request와 response를 넘겨주는 것입니다. 객체바인딩(setAttribute)을 해주지 않으면 JSP에서는 서블릿에있는 데이터를 가져가기가 어렵습니다.

request.setAttribute("list",list);

그리고 당연히 서블릿에서 JSP로 포워딩시 request와 response를 넘겨주어야되구요.

rd.forward(request,response);

위처럼 포워딩하면 JSP에서 request.getAttribute("list")로 데이터를 꺼내가면 됩니다.

이해가되셨을까요?

 

네 감사합니다 ! 제가 글솜씨가 좀 없어서 질문 전달이 잘못된 거 같습니다.
다시 써보겠습니다 ㅠㅠㅠ

1."서블릿 페이지에서" 객체 바인딩한 list를 jsp에서 사용하기 위해 (서블릿에서 페이지에서)

  request와 response 객체를  rd.forward(requset,response)를 해줍니다.

2."PoJo 페이지에서" 객체바인딩 한 list를 jsp에서 사용하기 위해 (서블릿 페이지에서)

  request와 response 객체를  rd.forward(requset,response)를 해줍니다.

그런데 2번에서는 객체바인딩한 위치와 포워딩해준 페이지가 다른데 어떻게 서로 공유하고 있었는지 궁금합니다.

제 추측은 requestHandler()메서드를 쓸때 인수로 request, response 참조변수를 PoJo에 전달해줬기 때문에 공유가 가능했다고 생각하는데 맞는지요 ㅠ

1번은 선생님 수업에서 많이 들었습니다.
2번은 제 추측인데 맞는지 모르겠습니다.

박매일님의 프로필 이미지
박매일
지식공유자

제 추측은 requestHandler()메서드를 쓸때 인수로 request, response 참조변수를 PoJo에 전달해줬기 때문에 공유가 가능했다고 생각하는데 맞는지요

네 맞습니다. request,response가 참조 공유되기 때문입니다~~

와 감사합니다 정말 ㅠㅠㅠㅠ 감사합니다.
참조변수를 건냈기에 받은 페이지도 같은 곳을 참조하는 변수를 사용가능한 거군요..!
감사합니다.ㅠㅠ

열심인 참새님의 프로필 이미지
열심인 참새

작성한 질문수

질문하기