mvc가 각자 나타내는 의미를 확실히 한번 정리하자. - 보충
클라이언트 요청을 받아 처리하여 응답하는 로직을 model,view,controller로 나누어 설계한다.
model - 애플리케이션 정보(데이터)를 처리하는 모듈(객체) - model - dao+vo - 데이터 처리
view - 텍스트, 체크박스, 입력창등과같은 인터페이스 요소를 나타낸다. - view - jsp - 인터페이스
controller - 클라이언트 요청, model, view 사이의 상호동작을 관리한다. -controller - servlet - 각각의 사이에서 상호동작관리
https://github.com/jeongwoohyunn/guestbook1
https://github.com/jeongwoohyunn/guestbook2
guestbook1 - jsp-form간 이동으로만 만든 형식
guestbook2 - servlet을 활용한 mvc형식 model-dao+vo,view-list.jsp,controller-servlet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.List"%> <%@page import="com.douzon.guestbook.vo.GuestbookVo"%> <%@page import="com.douzon.guestbook.dao.GuestbookDao"%> <% GuestbookDao dao = new GuestbookDao(); List<GuestbookVo> list = dao.getList(); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>방명록</title> </head> <body> <form action="<%=request.getContextPath() %>/add.jsp" method="post"> <table border="1" width="500"> <tr> <td>이름</td><td><input type="text" name="name"></td> <td>비밀번호</td><td><input type="password" name="pass"></td> </tr> <tr> <td colspan="4"><textarea name="content" cols="60" rows="5"></textarea></td> </tr> <tr> <td colspan="4" align="right"><input type="submit" value=" 확인 "></td> </tr> </table> </form> <% int totalCount = list.size(); int index = 0; for( GuestbookVo vo : list ) { %> <br> <table width="510" border="1"> <tr> <td>[<%=totalCount - index++ %>]</td> <td><%=vo.getName() %></td> <td><%=vo.getRegDate() %></td> <td><a href="<%=request.getContextPath() %>/deleteform.jsp?no=<%=vo.getNo() %>">삭제</a></td> </tr> <tr> <td colspan="4"> <%=vo.getMessage().replaceAll("\n", "<br>") %> </td> </tr> </table> <% } %> </body> </html> | cs |
<% %> jsp안에 자바 문법을 넣을 수 있다.
form action 에서 각각에 해당하는 url을 넣어준다.
위에 선언해준 리스트 vo를 활용한다. <%=vo.%>형식
38째줄 형식은 리스트를 활용한것? - 보충
1과 2가 같은 내용이지만 2가 servlet을 사용하기 때문에 2로 봤다.
2에서는 webutil과 servlet가 추가되었다.
webutils에서 forward(페이지 전환?)와 redirect(그대로)를 추가해준다
주소 형식이 뒤에 servlet주소가 붙는다
ex) http://localhost:8080/guestbook2/gb
GuestbookServlet.java -controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | package com.douzone.guestbook.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.douzone.guestbook.dao.GuestbookDao; import com.douzone.guestbook.vo.GuestbookVo; import com.douzone.web.WebUtils; @WebServlet("/gb") public class GuestbookServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding( "utf-8" ); //요청 분리(식별) String action = request.getParameter("a"); if("deleteform".equals(action)) { WebUtils.forward(request, response, "/WEB-INF/views/deleteform.jsp"); } else if("delete".equals(action)){ String no = request.getParameter( "no" ); String password = request.getParameter( "password" ); GuestbookVo vo = new GuestbookVo(); vo.setNo( Long.parseLong( no ) ); vo.setPassword( password ); new GuestbookDao().delete( vo ); WebUtils.redirect( request, response, "/guestbook2/gb"); } else if("add".equals(action)){ String name = request.getParameter( "name" ); String password = request.getParameter( "pass" ); String content = request.getParameter( "content" ); GuestbookVo vo = new GuestbookVo(); vo.setName( name ); vo.setPassword( password ); vo.setMessage( content ); new GuestbookDao().insert( vo ); WebUtils.redirect( request, response, "/guestbook2/gb" ); } else { /* default action : 디폴트 요청 처리(index) */ GuestbookDao dao = new GuestbookDao(); List<GuestbookVo> list = dao.getList(); // 데이터를 request 범위에 저장 request.setAttribute("list", list); // forwarding WebUtils.forward(request, response, "/WEB-INF/views/index.jsp"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } | cs |
위의 dao는 다음 mysite형식과 비슷하므로 마지막으로 거기서 정리한다 넘어가는거 포함~
'풀스택 > servlet-jsp' 카테고리의 다른 글
mysite2 제작 servlet -jsp->jstl -보충 필요 (0) | 2019.02.23 |
---|
댓글