작성
·
113
·
수정됨
0
View 분리 - V2 강의에서 질문 사항이 있습니다.
아래 MyView 객체에서 사용하는 HttpServletRequest request 라는 인자값과
MemberSaveController에서 사용하는 HttpServletRequest request가 디버깅에서 확인하면 동일한 인스턴스인것으로 확인됩니다.
이는 HttpServletRequest 도 서블릿 객체이고 싱글톤으로 관리되어서 동일한 인스턴스로 공유되는 것일까요?
아니라면 해당 소스에서 확인할때 두개의 인스턴스가 동일한 이유가 무엇일까요?
@6666번으로 동일한 인스턴스 객체였습니다.
public class MyView {
private String viewPath;
public MyView(String viewPath) {
this.viewPath = viewPath;
}
public void render(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request,response);
}
}
public class MemberSaveControllerV2 implements ControllerV2 {
MemberRepository memberRepository = MemberRepository.getInstance();
@Override
public MyView process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username,age);
memberRepository.save(member);
request.setAttribute("member",member);
return new MyView("/WEB-INF/views/save-result.jsp");
}
}