[전체적인 index 페이지 요청 프로세스]
1. index.jsp 페이지 요청이 들어오면 Controller에서는 DAO에게 데이터를 요청한다.
2. DAO에서는 DB와 연결하여 해당 데이터 VO 를 가져와 Controller에게 전달한다.
3. Controller는 DAO에게 받은 데이터를 request에 넣어서 View로 전달
4. View에서 request에 있는 데이터를 꺼내 사용자에게 보여준다.
[자세한 index 페이지 요청 로직] - guestbook의 예로 함
1. index 페이지 요청 만들기
1) DB에 있는 데이터를 list로 만들어 저장
List<GuestbookVp> list = new GuestbookDao.findAll();
2) list를 request에 담기
request.setAttribute("list", list); // request.setAttribute("담는 저장소 이름", 저장할 값);
3) index.jsp에 forward 해서 전달하기
RequestDispatcher rd = request.getRequestDispatcher(path); //path는 전달할 uri
rd.forward(request, response);
2. 내용 등록하기
1) index.jsp 페이지에서 submit 버튼을 눌렀을때 action을 add로 하기위한 uri를 서블릿으로 잡기
action = "<%= request.getContextPath()%>/guestbook?a=add"
2) 서블릿 페이지에서 a를 넘겨받고 (request에 a="add"가 들어있다.) action 유형파악
String action = request.getParameter("a");
3) "add"일때 index.jsp 페이지에서 넘어온 name, password, contents, reg_date를 vo 에 저장
String name = request.getParameter("name");
String password = request.getParameter("password");
String contents = request.getParameter("contents");
GuestbookVo vo = new GuestbookVo();
vo.setName(name);
vo.setPassword(password);
vo.setContents(contents);
new GuestbookDao().insert(vo);
4) index.jsp를 redirect 해준다.
WebUtil.redirect(request.getContextPath() + "/guestbook", request, response);
3. deleteform 페이지 요청하기
1) 삭제 uri를 수정 ~> 서블릿으로 이동하게끔 (request에 a=deleteform 과 no=vo.getNo() 가 들어있다.)
<a href="<%=request.getContextPath() %>/guestbook?a=deleteform&no=<%=vo.getNo()%>">삭제</a>
2) servlet에서 action이 deleteform 이라는 것을 조건문을 통해 알게되었다면, deletefrom 페이지를 forward() 해준다.
WebUtil.forword("/WEB-INF/views/guestbook/deleteform.jsp", request, response)
4. 삭제하기
1) deleteform.jsp 에서 request에 들어있는 no를 꺼낸다.
String no = request.getParameter("no");
2) 해당 번호와 비밀번호를 form의 post를 통해서 Servlet에 넘겨준다.
(a="delete"라는 것을 hidden으로 설정했음.)
<div id="guestbook" class="delete-form">
<form method="post" action="<%= request.getContextPath()%>/guestbook">
<input type="hidden" name="a" value="delete">
<input type='hidden' name="no" value="<%= no %>">
<label>비밀번호</label>
<input type="password" name="password">
<input type="submit" value="확인">
</form>
<a href="">방명록 리스트</a>
</div>
3) Servlet에서 action이 delete 임을 조건식을 통해 알게 되면, request.getParameter("")을 통해 no와 password를 꺼내온다.
String no = request.getParameter("no");
String password = request.getParameter("password");
4) Dao에 no 와 password를 전달해서 DB에서 삭제 요청을 한다.
new GuestbookDao().delete(no, password);
5) index 페이지를 redirect해준다.
WebUtil.redirect(request.getContextPath() + "/guestbook", request, response);
'비트교육센터[전문가반]' 카테고리의 다른 글
JavaScript 복습01 (0) | 2021.03.22 |
---|---|
2021.03.12 수업 내용 정리 (0) | 2021.03.14 |
이클립스 Git 연동, Commut&Push, Pull 하는 방법 (0) | 2021.03.08 |
선형자료구조 _ 연결리스트(단일, 이중, 환형) (0) | 2021.02.16 |
선형 자료 구조 _ 연접 리스트(배열) (0) | 2021.02.15 |