response.sendRedirect / forward
241
12 asked
어떤건 sendRedirect를 쓰고 어떤건 forward를 썼던데 쓰는 기준이 정해져 있는건가요? 아니면 방식만 다를 뿐 아무거나 써도 상관없는건가요?
Answer 2
0
두가지 방식의 차이가 강의에 설명이 되어있을건데요? 두 방식은 차이가 있습니다.
일반적으로 컨트롤러가 뷰로 요청하는 방식이 forward이구요 컨트롤러에서 다른 컨트롤러로 요청을 할때는 redirect로 하시면됩니다.
컨트롤러에서 뷰로 요청시에는 값을 request객체에 담아서 가야되기 때문에 forward로 해야 뷰에서 값을 가져갈수있기 때문이구요.
0
안녕하세요, 인프런 AI 인턴입니다. edwin.dkim님!
sendRedirect와 forward는 웹 개발 시 중요한 역할을 하는 두 가지 방법입니다. 이 둘은 용도와 동작 방식에서 차이가 있습니다:
sendRedirect:
- 동작 원리: 클라이언트에게 URL을 변경하도록 요청하는 방식입니다. 서버가 클라이언트에게 새로운 URL로 이동하라고 지시하며, 클라이언트는 그 URL로 새로운 요청을 하게 됩니다.
- 사용 용도: 주로 리다이렉션이 필요할 때 사용합니다. 예를 들어, 로그인 후 특정 페이지로 이동하거나 외부 URL로 이동할 때입니다.
- 장점: 클라이언트와 서버 간의 요청과 응답이 완전히 새로운 요청으로 바뀝니다. URL이 변경됩니다.
- 단점: 두 번의 요청이 발생하기 때문에 성능에 영향을 줄 수 있습니다.
- 동작 원리: 클라이언트에게 URL을 변경하도록 요청하는 방식입니다. 서버가 클라이언트에게 새로운 URL로 이동하라고 지시하며, 클라이언트는 그 URL로 새로운 요청을 하게 됩니다.
forward:
- 동작 원리: 서버 내부에서 요청을 다른 응답 객체로 넘기는 방식으로, 클라이언트는 URL이 변경되지 않습니다.
- 사용 용도: 서버 내부에서 처리를 마친 후 응답을 동일한 서버 내의 다른 자원으로 넘기고자 할 때 사용합니다. 예를 들어, 로그인 처리 후 사용자 정보 페이지로 이동할 때 사용합니다.
- 장점: 클라이언트 측에서는 하나의 요청으로 보이며, URL도 변경되지 않습니다. 성능상 더 효율적일 수 있습니다.
- 단점: 다른 사이트나 외부 자원으로는 이동할 수 없습니다.
- 동작 원리: 서버 내부에서 요청을 다른 응답 객체로 넘기는 방식으로, 클라이언트는 URL이 변경되지 않습니다.
사용하는 기준은 목적에 따라 다릅니다. 정보를 저장하거나 다른 페이지로 이동할 때 클라이언트의 브라우저 URL이 변경되어야 한다면 sendRedirect를 사용해야 하고, 단순히 서버 내부에서 처리를 이어가면서 클라이언트의 URL 변화를 원하지 않는다면 forward를 사용하는 것이 좋습니다.
관련 질문을 더 살펴보시려면 아래 유사한 질문을 참고해 보세요:
- requestHandler 메서드 관련 질문입니다!
- 41_Basic MVC완성(Controller와 View연동 핵심) 11:16 부분에서 질문있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
WEB-INF 파일 관련 53강 에러발생
0
208
2
질문드립니다.
0
201
2
질문이있습니다.
0
150
2
bin폴더가 존재하지않아요
0
205
2
Mysql 이클립스랑 연동하는 부분에서 ...
0
203
2
Export하기
0
147
1
초기 설정
0
172
2
콘솔에 출력이 안됩니다.
0
193
2
mysql 실행안됨
0
204
1
stop.bat 실행오류
0
141
1
mysql startup.bat 오류
0
215
2
34강 질문 있습니다!
0
195
2
전자정부프레임워크
0
307
2
22강 에러관련 짊문입니다
0
180
1
강의 20강 질문 및 오류관련
0
214
1
전자정부프레임워크 질문입니다.
0
241
1
My sql 비밀번호 설정 오류
1
482
1
화질이 계속 720p인데 1080은 안되는건가요?
0
336
1
53강 후반부 경로
0
289
2
오류가 발생하였는데 왜 일까요...?
0
424
1
mysql 설정에서 키가 먹지 않습니다
0
347
2
13강 test.jsp 질문 드려요
0
349
1
3강 mysql 질문입니다
0
322
1
MIME TYPE 질문있습니다.
0
353
1

