1. 포워드(Forward) 방식 도식
[브라우저] --요청--> [Controller(Servlet)]
|
v (서버 내부 이동)
[View(JSP)]
|
v
[브라우저] (응답)설명
- Forward는 “서버 내부”에서만 이동함.
- 브라우저가 컨트롤러(servlet)에 요청 보내면,
컨트롤러가 JSP(뷰)로 내부에서 요청을 넘김 (URL 안 바뀜). - request 객체가 그대로 유지돼서,
컨트롤러에서 설정한 데이터(request.setAttribute 등)가
JSP에서 그대로 보임. - 최종 응답은 브라우저에 한 번만 감.
- 실제 사용 예:
로그인 처리 후 내 정보 페이지,
폼 값 검증 실패 시 입력 폼으로 다시 돌려보낼 때 등
(데이터 전달이 필요할 때 자주 씀)
2. 리다이렉트(Redirect) 방식 도식
[브라우저] --1차 요청--> [Controller(Servlet)]
^ |
| <--- redirect -----|
| |
|----2차 요청------->|
[View(JSP)]
|
v
[브라우저] (응답)설명
Redirect는 “외부 이동”, 즉 클라이언트(브라우저)가 다시 요청함.
컨트롤러가 브라우저에게 “이 주소로 새로 요청해!”라고 명령(redirect).
브라우저 주소창이 바뀜.
request 객체는 새로 생성되기 때문에,
이전에 넣었던 데이터(request.setAttribute)는 사라짐.
(전달하려면 session, 쿼리스트링, flash attribute 등 사용)실제 사용 예:
- 회원가입 완료 후 “로그인 페이지로 이동”
- 글쓰기/수정/삭제 후 목록으로 이동(새로고침 시 중복처리 방지)
- POST/Redirect/GET 패턴(새로고침시 중복실행 방지)
주로 새로고침 방지, 주소창 변경, 완전히 다른 페이지로 이동 시 사용
3. Forward vs Redirect 차이점 요약
| 구분 | Forward | Redirect |
|---|---|---|
| 요청 횟수 | 1회(서버 내부 이동) | 2회(브라우저가 새로 요청) |
| request 공유 | O (유지) | X (사라짐) |
| 브라우저 URL | 변하지 않음 | 바뀜 |
| 사용 시점 | 데이터 전달이 필요할 때 | 새로고침 방지, 주소이동 등 |
| 속도 | 상대적으로 빠름(내부 이동) | 느림(두 번 요청) |
실전 팁
데이터 전달이 필요하면 Forward,
새로고침이나 URL 변경, 중복실행 방지면 Redirect.브라우저에서 주소가 바뀌는지 보면,
Forward/Redirect 구분 가능
'JSP' 카테고리의 다른 글
| ### 1. 클래스, 함수, 객체 구별하는 형태 (0) | 2025.05.26 |
|---|---|
| 예제 5-4 실습할 때 헷갈렸던 것 (0) | 2025.05.23 |
| HTML → Servlet → JSP (0) | 2025.05.23 |
| JSP에서 Enumeration 개념 (0) | 2025.05.23 |
| 147p 도서목록 표시하기 DAO DTO (0) | 2025.05.22 |