모델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
      • html 컨텐츠 응답
  • /insert.hta
    • 로직코드
    • InsertController
      • 요청파라미터 분석
      • 게시글정보 저장
      • list.hta를 재요청하는 URL 응답을 보낸다. 외부이동시킨다! (redirect 이동)

redirect와 forward 이동

  • redirect (외부이동)
    • 이전 요청 때 생성된 요청객체와 응답객체가 파기된다
    • 새로운 요청, 응답 객체가 생성되어 전달된다
  • forward (내부이동)
    • 클라이언트가 요청하면 요청, 응답객체가 controller에 전달된다
    • 요청된 요청객체를 setAttribute로 저장한다
    • 컨트롤러에서 뷰르 보낼 때 요청객체를 수단으로 데이터를 전송한다 요청객체는 view에게 반드시 필요한 객체!