목록을 보면서 내가 원하는 게시글의 제목을 클릭한다.
-> 해당글의 상세페이지로 넘어갔다
리스트페이지에서 제목 누르면
해당 게시글의 상세보기 화면으로 가야함
이때
제목을 클릭할수 있는 요소로 만든다 ( a, button, input)
웹서버로 요청이 넘어가야 한다(상세보기를 보고자 하는 요청)
해당 요청을 받아서 요청 url이 매핑되는 컨트롤러 메소드를 찾아간다
url이 매핑된 컨트롤러 메서드는 사용자가 보고자 했던 글의
상세내용을 가져오기 위해 서비스에게 말을 건다
5.서비스는 dao에게 말을 걸어 데이터를 요구한다.
6.dao는 db서버에게 요청을 보내 일치하는 데이터를 찾아와 서비스에게 돌려준다
8.컨트롤러는 받은 데이터를 상세보기 페이지를 구성하는 jsp에게 전달하기 위해
세팅하고 jsp를 찾아갈수 있게 경로를 리턴한다
9.jsp는 컨트롤러에게 받은 데이터를 화면에 구성한다.
태그 별 목적
a-> 웹서버에게 요청 전달(href)
button -> 자바스크립트에서 처리되는 이벤트를 발생시킬 때
jsp 파일에서 다른 jsp를 불러오는 방식 = include
정적 include
jsp파일이 변환 및 컴파일 되기 전에 include 된 jsp들을 하나의 jsp로 합친다
변수공유가 가능하다
(정적이 동적보다 빠름 그래서 굳이? 동적인 처리를 사용하는 방식을 사용하진 않음)
동적 include
jsp파일이 실행되는 중에 다른 include된 jsp를 포함시킨다
동시다발적으로 이루어짐
각각의 jsp가 독립적으로/별도로 컴파일된다
...
jsp파일이 변환 및 컴파일 되면 html문서가 된다
html 문서가 브라우저에 나타난다
header.jsp가 있기 때문에 좋은점
공통으로 사용될 라이브러리 같은 것들을 불러올떄 좋음
주어진 문제 해결해보기
게시물을 삭제하는 기능 추가(버튼 누르면
할지 말지.. 삭제 버튼 누르면 실제로 삭제, 삭제 버튼
안 누르면 삭제 x)
...
1.상세보기 페이지에 삭제버튼을 하나 만든다
2.해당버튼을 클릭하면 게시글이 삭제
2-1. /usr/article/delete?id=(?)라는 요청을 전달
2-2. 요청을 받은 컨트롤러 메서드는 쿼리스트링으로
들어온 id를 사용해서 게시글을 지운다
3. 사용자에게 잘 지웠다라는 문구 보여주기
(화면을 그려서 보여주는 방식, 스크립트를 통해 알림창)
4. 리스트로 페이지를 넘겨준다(jsp가 바뀐다는 개념이 아니라
요청이 바뀌어야 한다!)`