- 포워딩(Forwarding)과 리다이렉트(Redirect)
- JSP환경에서 개발시 주로 사용되는 용어이다.
- 현재 작업하는 웹페이지에서 다른 페이지로 이동하는 방법의 종류로 다른 매커니즘에 의해 동작한다.
- 포워딩(Forwarding) 개념
- 웹 컨테이터(Web Container) 차원에서 페이지 이동을 의미한다.
- 동일 웹 컨테이너에서 관리하는 페이지로만 이동이 가능하다.
- 웹 브라라우저의 URL 정보는 변경되지 않으므로 클라이언트는 다른 페이지로 이동했는지 확인이 불가능하다.
- 포워딩은 클라이언트와 통신없이 서버에서만 처리되며 리다이렉트보다 나은 성능을 보여준다.
- 현재 페이지와 포워딩에 의해 호출도니 페이지는 Request와 Response 객체를 공유한다.
- 리다이렉트(Redirect) 개념
- 웹 브라우저에게 다른 페이지로 이동하라고 명령한다.
- 해당 명령에 브라우저가 웹 컨테이너의 응답을 받은 후 다시 요청을 보내는 경우 새로운 URL을 포함한다.
- 다른 웹 컨테이너의 페이지로 이동이 가능하다.
- 웹 컨테이너에서는 Request와 Response 객체가 새롭게 생성된다.
- 추가적으로 발생하는 처리에 의해 포워딩보다는 느리다.
- Spinrg에서의 (리다이렉트 & 포워딩)
- Controller 메소드가 실행되고 View 경로를 리턴하면 기본이 포워딩 방식이므로 글 등록 후에 목록 화면이 출력되도 브라우저의 URL은 변경되지 않는다.
http://localhost:8080/BoardWeb/insertBoard.do
따라서 포워딩이 아니라 리다이렉트를 원할 때는 'redirect:' 라는 접두사를 붙여야 한다.
@RequestMapping(value="/insetBoard.do")
public String insertBoard(BoardVo vo, BoardDAO boardDAO) {
boardDAO.insertBoard(vo);
return "redirect:getBoardList.do";
}
위 소스는 글 등록 처리 후에 "getBoardList.do"로 리다이렉트 되어, 최종 URL은 다음처럼 변경된다.
http://localhost:8080/BoardWeb/getBoardList.do
'JSP' 카테고리의 다른 글
웹 애플리케이션 (0) | 2020.05.17 |
---|---|
URI(Uniform Resource Identifier) (0) | 2020.04.30 |
웹서버와 웹 애플리케이션 서버(was) (0) | 2020.04.26 |
컨테이너란? (0) | 2020.04.26 |