171206 포워딩(Forwarding) - RYUDONGJIN/Memo_wiki GitHub Wiki

RequestDispatcher 클래스

  • 서블릿 또는 jsp에서 요청을 받은 후 다른 컴포넌트로 요청을 위임할 수 있다.
  • RequestDispatcher클래스와 HttpServletResponse클래스를 이용
  • RequestDispatcher클래스는 요청 받은 요청객체(request)를 위임하는 컴포넌트에 동일하게 전달.
private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
	System.out.println("actionDo");
		
	request.setAttribute("id", "abcde");
	request.setAttribute("pw", "12345");
		
	RequestDispatcher dispatcher = request.getRequestDispatcher("/dispacherJsp.jsp");
	dispatcher.forward(request, response);	
}
	id : <%= request.getAttribute("id") %> <br />
	pw : <%= request.getAttribute("pw") %>
출력 결과 : (요청객체를 위임받아 전달값이 있다.)
id : abcde 
pw : 12345

HttpServletResponse 클래스

  • RequestDispatcher 클래스와 동일하게 요청을 위임하는 클래스.
  • 요청받은 요청객체를 위임받은 컴포넌트에 전달하는 것이 아닌, 새로운 요청객체를 생성
private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	System.out.println("actionDo");
		
	String id = (String)request.getAttribute("id");
	String pw = (String)request.getAttribute("pw");
		
	response.setContentType("text/html; charset=EUC-KR");
	PrintWriter writer = response.getWriter();
	writer.print("<html><head></head><body>");
	writer.print("RequestObj2" + "<hr />");
	writer.print("id : " + id + "<br />");
	writer.print("pw : " + pw);
	writer.print("</body></html>");	
}	
<%
	request.setAttribute("id", "abcde");
	request.setAttribute("pw", "12345");
	response.sendRedirect("../RequestObj2");
%>
출력 결과 : (요청객체를 위임받지 않고 새로운 객체를 생성해서 전달값이 없다.) 
id : null
pw : null
⚠️ **GitHub.com Fallback** ⚠️