당최 서블릿 페이지 이동 에 대한 정리를 찾기 힘들어
내가 직접 테스트 해보고 정리했다. ㅎㅎ 그래서 정확성은 보장 못함.
포워딩 방식 (return "viewname"; )
※ 주소는 viewResolver에서 /WEB-INF/view/ + " ~~~ " + .jsp 이런식으로 만들어짐.
※ 앞에 / 가 붙든 안붙든 상관없이 view/ 다음으로 간다
※ view 밑으로 폴더 명부터 다 써주기
※ jsp붙으니 .do아니다.
return "notice/noticeList"; , return "/notice/noticeList";
컨테이너가 찾는 주소 /mogaco/WEB-INF/view/notice/noticeList.jsp
브라우저에 표시되는 주소 http://localhost:8082/mogaco/notice/noticeList.do
- URL 주소 유지, 즉 브라우저 모르게 컨테이너 내부에서 이동
- request/response 객체 유지
- 같은 웹 서버 내에 있는 파일들로만 이동 가능
- 클라이언트 정보를 갖고 이동
- 클라이언트와의 통신없이 서버에서만 처리되므로 효율이 더 좋다고함
리다이렉트 방식 ( return "redirect:/"; )
※ 주소는 컨트롤러에 재 요청하는 주소다.
※ / 가 안붙으면 안된다.
※ 컨트롤러로 재요청하므로 url pattern 지켜줘야함 ".do"
return "redirect:/notice/noticeList.do";
브라우저 주소 http://localhost:8082/mogaco/notice/noticeList.do
- URL 주소 바뀜, 컨테이너로 재 요청(단순한 이동)
- request/response 객체 소멸
- 같은 서버, 다른 서버 에 있는 페이지로 이동 가능
- 잘못된 예시
테스트 하고 정리하느라 시간이 다 갔다.뭘 쓸지 여부는 response, request 유지 여부에 따라 나뉠까.?* 브라우저 표시되는 주소는 get,post 와 연결지어 봐서 정리해 줘야겠다.왜냐!!그런데 여기서 브라우저 표시되는 주소가 현재 주소가 되니링크가 꼬인다. 꼬리에 꼬리를 물고 모르는게 생긴다 ㅎㅎ+redirect로 새로 요청해주어야 재 요청시 꼬이지 않는다.그럼 리다이렉트를 쓰고, 파티쉐님께 배운 주소 지우는것도 적용해보자