티스토리 뷰
1. 다른 웹 자원(jsp) 호출하는 여러가지 방식과 그 차이점
- sendRedirect :response 내장 변수를 이용해 호출하는 방식
ex) response.sendRedirect("result.jsp?RESULT="+data);
- forward : RequestDispatcher 인터페이스에 속하며 request 내장 변수에 대해 getRequestDispather 메서드를 호출해 얻는다.
ex) RequestDispatcher dispatcher = request.getRequestDispatcher("Result.jsp");
dispatcher.forward(request,response);
-> request안에 데이터를 저장해 놓으면 다른 페이지에서 사용가능.
첫째, forward와 sendRedirect의 차이는 sendRedirect는 URL을 웹브라우저로 보내서 간접적으로 웹 자원을 호출하지만, forward는 웹 서버 쪽에서 직접 호출합니다.
둘째, sendRedirect는 다른 웹 서버에 있는 것도 호출할 수 있지만, forward는 같은 웹서버 같은 디렉터리 내에 있는 웹 자원만 호출 가능.
셋째, sendRedirect는 텍스트 데이터만 전송가능 forward는 객체 형태의 모든 데이터 전송가능.
넷째, sendRedirect에서 한글 데이터 전송을 위해서는 인코딩이 필요하지만 forward에서는 불필요.
- include : forward처럼 다른 jsp 페이지 호출하는 기능을 하지만, 호출된 jsp 페이지가 끝나고 나면 실행 흐름의 제어가 본래의 jsp 페이지로 돌아오는 점이 다르다.
ex) RequestDispatcher dispatcher = request.getRequestDispatcher("Result.jsp");
dispatcher.include(request,response);