2010/07/20 09:39
프로그래밍/servlet/JSP
| Redirect | Dispatch |
| ▷ 요청을 완전히 다른 URL로 바꾼다. ▷ 브라우저가 작업. 클라이언트에서 일어남 브라우저의 주소창의 값이 바뀜. ▷ response 객체에 쓰기 작업을 한 뒤에는 SendRedirect() 할 수 없다. ▷ response.sendRedirect("http://www.a.com"); ▷ sendRedirect()의 인자로 URL 객체가 아닌 String 객체를 넘김 ▷ URL은 상대경로 사용 가능 - "/"가 없는 것 : 원래의 주소 가지고 전체경로재작성 - "/"가 있는 것 : 웹 어플리케이션부터 경로 재작성 ▷ request는 못넘기고 단지 page만 이동 ▷ URL이 포워드 될 곳으로 재설정됨 ▷ 추가적인 재요청으로 인해 dispatch 방법보다 성능이 떨어진다. ▷ 요청시 바인딩 된 데이터가 지속되지 않음 |
▷ 웹 어플리케이션에 있는 다른 컴포넌트에게 처리 위임 ▷ 서버 상에서 작업 일어남 ▷ 브라우저의 주소 창의 값이 바뀌지 않음. ▷ RequestDispatcher view = request.getRequestDispatcher ("result.jsp"); view.forward(request, response); ▷ request 자체를 넘김 ▷ URL 재설정 안됨 ▷ 클라이언트에서는 포워드 발생여부를 인지 하지 못한다. ▷ 요청 시 바인딩된 데이터가 지속됨 ▷ struts framework 에서는 기본적으로 dispatch 방법으로 구현 |