[1] 응답과정
(1) redirect
첫번째 응답으로 상태코드 300이 뜨면서 다른 URL로 재요청을 해야한다는 응답을 하고
다른 URL : /ch2/login.jsp를 알려준다.
클라이언트의 브라우저는 자동으로 2번째 요청을 하게되고 알맞는 응답을 받게된다
(2) forward
다른 URL 요청을 응답하지 않고 Forward를 이용하여 login.jsp에 자동으로 요청메세지를 전달하여 최종 응답하게 한다
[2] 응답 view 과정
(1) 스프링 : RedirectView
회원가입화면에서 정보를 입력하여 다음화면인 register/save 을 요청했을때
DispatcherServlet이 받아서 응답을 처리하는 Controller에서 유효성검사를 했을때 실패했다면
그 전 화면인 register/add를 불러오기위해 Redirect 불러오고
Redirect는 RedirectView 에서 [HTTP/1.1 302 ~] 라는 응답을 만들어서 응답을 클라이언트에 전송한다.
(2) JST : JSTlView
클라이언트가 register/add를 요청하면 DistacherServlet이 받아서
응답을 처리하는 controller에서 해당하는 뷰 이름(registerForm) 을 호출한다
DispatcherServlet에서 InternalResourceViewResolver에서 뷰 regisgerForm을 해석해서
해석한 결과인 jsp경로를 JSTlview에서 받아서 Model을 통해 jsp파일로 응답한다
(3) Forward : InternalResouceView
클라이언트가 register/save를 요청하면 DistacherServlet이 받아서
응답을 처리하는 controller에서 해당하는 뷰 이름(registerForm) 을 호출한다
DispatcherServlet에서 forward 코드를 확인하고 InternalResourceView 에서 /register/add를 불러온다
DispatcherServler에 받아와서 InternalResourceViewResolver에서 뷰 regisgerForm을 해석해서
해석한 결과인 jsp경로를 JSTlview에서 받아서 Model을 통해 jsp파일로 응답한다
[3] 요청과 응답 실제 확인하기
(1)redirect 요청응답
이의 경우 요청2를 보낼때는 다른 주소로 요청을 보내게된다
이유는 GET으로 보내기 때문이다.
[4] Forward 코드 수정
(1) 리턴값 Forward 로 수정
(2) POST 방식으로 요청/응답 되도록 전체 수정한다
servlet-context.xml에서 GET 방식의 뷰 컨트롤러 등록 부분을 삭제하여 아래와 같이 유지한다
(3) 요청 / 응답 메세지 확인시 POST 방식으로 Forward 적용이 되었다
동일하게 save 주소를 받아서 주소도 바뀌지 않았고
상태코드 200으로 정상으로 받았다
'🌈 백엔드 > 스프링 MVC' 카테고리의 다른 글
스프링_세션과 서버 부담 (0) | 2023.08.28 |
---|---|
스프링_Session 세션 (0) | 2023.08.25 |
스프링_URL매핑 + URL패턴 + URL 인코딩 (0) | 2023.08.24 |
스프링_ WebDataBinder (0) | 2023.08.23 |
스프링_Model 속성 추가 @ModelAttribute (0) | 2023.08.23 |