페이지 전환 방식
JSP 환경에서 페이지를 전환하는 방법은 두가지가 있다.
Redirect와 Forward 방식이 있는데, 이 두 방식의 차이점을 알아보자.
Redirect (리다이렉트)
Redirect는 주소창에 새로 주소를 넣고 엔터를 치는 것과 같다.
URL을 request 받은 주소로 바꾸고 해당 주소로 이동한다.
이때 request, response 객체가 유지되지 않고 새롭게 생성된다.
WebUtil.redirect(request, response, "URL경로");
Forward (포워드)
Forward는 페이지를 이동할 때 request, response 객체를 건네준다.
지정한 jsp 파일로 이동하는 것으로 코드는 다음과 같다.
WebUtil.forward(request, response, "/WEB-INF/파일경로/파일명.jsp");
URL을 이동하는 것이 아니라 파일을 직접 불러오기 때문에 최초 호출한 URL에서 변하지 않는다.
Redirect와 Forward의 올바른 사용
URL 존재 여부에 따른 사용
URL이 생성되지 않은 상태에서는 forward를 통해 특정 페이지로 연결되는 URL을 생성해주어야 한다. URL이 이미 존재할 경우에는 Redirect를 사용하여 기존의 URL을 호출할 수 있다.
시스템의 변화 여부에 따른 사용
Session이나 DB 등의 시스템에 변화가 생기는 request(로그인, 회원가입, 글쓰기 등)의 경우에는 Redirect 방식을 사용하는 것이 좋다. Redirect 방식을 사용하면 request, response 객체가 유지되지 않으므로 중간에 새로고침 등의 변수가 생기더라도 작업이 중복되지 않기 때문이다.
반면에 시스템에 변화가 생기지 않는 단순 조회 작업(게시글 보기, 검색 등)의 경우에는 Forward 방식을 사용해도 된다.
'백엔드 > Java' 카테고리의 다른 글
| 리스트(List) - 배열 리스트(Array List), 링크드 리스트(Linked List) (0) | 2021.12.06 |
|---|---|
| 컬렉션 프레임 워크(collection framework) (0) | 2021.12.06 |
| Overload(오버로드)와 Overide(오버라이드)의 차이점 (0) | 2021.12.02 |