모델1과 모델2의 차이
모델1
- home.jsp
- list.jsp
- insert.jsp
- 로직코드 (list.jsp를 재요청하는 URL 응답)
모델2
- /home.hta
- 로직코드
- HomeController.java
- 최신글 조회, 베스트글 조회
- 조회된 정보를 home.jsp에 전달한다
- 응답을 보내지 않고 home.jsp로 내부이동시킨다 (forward 이동)
- 디자인코드
- home.jsp
- html 컨텐츠 응답
- /list.hta
- 로직코드
- ListController
- 페이지번호, 검색조건 분석
- 게시글 목록 조회
- 조회된 정보를 list.jsp에 전달
- list.jsp
- /insert.hta
- 로직코드
- InsertController
- 요청파라미터 분석
- 게시글정보 저장
- list.hta를 재요청하는 URL 응답을 보낸다. 외부이동시킨다! (redirect 이동)
redirect와 forward 이동
- redirect (외부이동)
- 이전 요청 때 생성된 요청객체와 응답객체가 파기된다
- 새로운 요청, 응답 객체가 생성되어 전달된다
- forward (내부이동)
- 클라이언트가 요청하면 요청, 응답객체가 controller에 전달된다
- 요청된 요청객체를 setAttribute로 저장한다
- 컨트롤러에서 뷰르 보낼 때 요청객체를 수단으로 데이터를 전송한다
요청객체는 view에게 반드시 필요한 객체!