작성
·
212
0
MVC03에서는
RequestDispatcher rd = request.getRequestDispatcher("member/memberList.jsp");
rd.forward(request, response); <<< 이것을 통해 memberList.jsp에 객체바인딩 한 것을 전달해줬는데
MVC04에서는 리퀘스트 핸들러 메서드 필드안에서 지역변수?로 객체바인딩을 하였고, 리턴도 nextPage를 리턴해 주었습니다.
memberList.jsp에 "list" 객체바인딩이 어떻게 전달된 건지 모르겠습니다..
답변 부탁드립니다.
MVC03에는 객체바인딩 한것이 rd변수안에 주소와 함께 들었고
MVC04에는 객체바인딩 한 것이 nextPage안에 주소와 함께 들은 건가요?
선생님의 자바강의에 리턴은 하나만 가능하다고 들었던 것 같은데 아닌가요 ㅠㅠ
---------------------------------------------------------------
혹시 httpServlet request는 항상 그 객체를 가르키고 있고
인터페이스를 상속받은 핸들러에도 memberList.jsp에도 httpServlet request가 있기 때문인가요?
만약 그렇다면 httpServlet request도 파라미터를 받는 매개변수이고 필드 안은 그것을 이용해 실현시키는 부분인데
메서드의 필드안으로 파라미터를 전달해 줄 뿐인 매개변수가 그것을 리퀘스트에 담아두는 게 가능한 건가요?
답변 1
0
네 HttpServletRequest request의 request객체가 controller에서 -> jsp까지 동일하게 전달되기 때문에 requestHandler 메서드안에서 "list"로 객체바인딩하고 -> jsp로 forward할때 request를 전달하기 때문에 jsp에서 "list"를 꺼내올 수가 있습니다.(메모리 번지를 공유한다고 보면되는것입니다.)
즉 POJO(Controller)에서 request.setAttribute("list", list); 로 객체바인딩하고
jsp에서 request.getAttribute("list"); 이렇게 꺼내올수가 있다는 거죠
or EL로도 가져올 수 있습니다. ${list} 이렇게요~~
경님께서 마지막에 설명해주신 것처럼 이해하시면 됩니다.^^
혹시 httpServlet request는 항상 그 객체를 가르키고 있고
인터페이스를 상속받은 핸들러에도 memberList.jsp에도 httpServlet request가 있기 때문인가요.->네