프로그래밍/- JSP , Servlet

RequestDispatcher , sendRedirect

즐겁게 하하하 2022. 1. 16. 07:54
728x90

RequestDispatcher - 페이지 forward/include

RequestDispatcher는 클라이언트로부터 최초에 들어온 요청을 JSP/Servlet 내에서 원하는 자원으로 요청을 넘기는(보내는) 역할을 수행하거나, 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스입니다. 즉 /a.jsp 로 들어온 요청을 /a.jsp 내에서 RequestDispatcher를 사용하여 b.jsp로 요청을 보낼 수 있습니다. 또는 a.jsp에서 b.jsp로 처리를 요청하고 b.jsp에서 처리한 결과 내용을 a.jsp의 결과에 포함시킬 수 있습니다. 

ServletContext을 통해서 얻는 법
서블릿 클래스에서 ServletContext를 사용하여 RequestDispatcher를 얻을 수 있습니다.

호출 대상을 web.xml에 지정한 서블릿 이름(<servlet-name>)으로 지정하는 방법
ServletContext context = this.getServletContext(); 
RequestDispatcher dispatcher = context.getNamedDispatcher("helloServlet");                 
cs
 
호출 대상을 URL 경로로 지정하는 방법. 웹어플리케이션 루트경로를 기준으로 절대경로만 지정할 수 있습니다.
ServletContext context = this.getServletContext(); 
RequestDispatcher dispatcher = context.getRequestDispatcher("/hello");                     
cs

JSP 페이지에서는 application 기본객체를 이용합니다.
<%
     RequestDispatcher dispatcher = application.getRequestDispatcher("/hello");             
%>
<%
	RequestDispatcher dispatcher = request.getRequestDispatcher("join2/test02.jsp");
	dispatcher.forward(request, response);
%>
RequestDispatcher dispatcher = request.getRequestDispatcher("test02.jsp");
		dispatcher.include(request, response);

sendRedirect()

바로 페이지를 넘기는 것이 아니라 모든 로직을 수행한 뒤 페이지가 넘어가도록 하는 것

728x90