[JSP] 특정 페이지로 이동 (forward, redirect)

JSP에서 특정페이지로 이동시키는 방법으로 forward, redirect가 있다.

forward


request 스코프에 담긴 값이 유효 (전달받은 request,response를 유지하고 페이지를 넘긴다.)

이동된 url이 사용자에게 보여지지 않는다.

 

forward로 페이지 넘기기

@WebServlet(urlPatterns = {"/page/controller"})
public class PageNumController extends HttpServlet{
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 넘길 페이지 경로
		RequestDispatcher dispatcher = request.getRequestDispatcher("/forward/view/page1.jsp");
		dispatcher.forward(request, response);
	}
}


1. 이동시킬 경로를 담고있는 RequestDispatcher 인스턴스 생성
2. 인스턴스.forward로 request, response 담아서 넘겨준다.


redirect

 

request,response가 유지되지 않아서 클라이언트가 페이지를 새로 요청한 것과 같은 방식으로 페이지 이동한다.

이동된 url이 사용자에게 보인다.

 

redirect로 페이지 넘기기

@WebServlet("/page/controller2")
public class PageNumController2 extends HttpServlet{
	
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 넘길 페이지 경로
		resp.sendRedirect("/chap02/forward/view/page2.jsp");
	}

}

sendRedirect를 이용해서 넘기고 싶을 페이지의 경로를 입력한다. 
request,response를 보낼 수 없다.

 

댓글

Designed by JB FACTORY