티스토리 뷰

반응형

안녕하세요. Nerd-Lee입니다.

공부 내용은, 인프런 박매일님의
[NarP Series]MVC 프레임워크는 내 손에[나프1탄] 을 참고하였습니다.

MVC 1단계인, Servlet 환경으로만 만들어보고, MVC 2단계로 넘어가고

나중에는 Spring Framework를 사용하는 방식의 강의입니다.

MVC 1단계는, Controller + Model 만을 사용하는 방식입니다.

진도가 빠르게 나가지 않아, 중요하다고 생각하는 부분들만 작성할 예정입니다.


1. controller에서 view 페이지 만들기

  • tablesgenerator 에서, 테이블 만들기 ( 2행 7열 )
  • 그리고 out.println으로 테이블을 html 코드로 만들자.
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<table>");
        out.println("<thead>");
        out.println("<tr>");
        out.println("<th>번호</th>");
        out.println("<th>아이디</th>");
        out.println("<th>패스워드</th>");
        out.println("<th>이름</th>");
        out.println("<th>나이</th>");
        out.println("<th>이메일</th>");
        out.println("<th>전화번호</th>");
        out.println("</tr>");
        out.println("</thead>");
        out.println("<tbody>");

        // 반복문 처리.
        out.println("<tr>");
        out.println("<td></td>");
        out.println("<td></td>");
        out.println("<td></td>");
        out.println("<td></td>");
        out.println("<td></td>");
        out.println("<td></td>");
        out.println("<td></td>");
        out.println(" </tr>");

        out.println("</tbody>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>");

2. 최종 데이터 출력코드

  • response.setContentType() 함수를 이용해서, 한글 문자가 깨지는 것을 방지해야 한다.
  • response.setContentType("text/html;charset=utf-8") 을 출력에 관련된 부분을 적기 전에 설정한다.
  • 이렇게 설정하는 방식을 MIME TYPE이라고 한다.
  • 그리고, 버튼을 누르면, 회원가입 페이지로 넘어가는 버튼도 하나 만들자.
  • 또한 회원가입이 되면, 회원리스트를 보여주는 페이지로 넘어가도록 하게 하자.

    response.sendRedirect 함수에, url을 문자열로 만들어주면 된다.
  • [전체 코드]
@WebServlet("/memberList.do")
public class MemberListController extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 1. 클라이언트 요청 받기

        // 2. 회원 전체리스트 가져오기(Model과 연동)
        MemberDAO dao = new MemberDAO();
        ArrayList<MemberVO> list = dao.memberGetList();

        // 3. 회원 전체리스트 HTML로 만들어서 출력(응답)
        response.setContentType("text/html;charset=utf-8");// MIME TYPE
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<table border='1'>");
        out.println("<thead>");
        out.println("<tr>");
        out.println("<th>번호</th>");
        out.println("<th>아이디</th>");
        out.println("<th>패스워드</th>");
        out.println("<th>이름</th>");
        out.println("<th>나이</th>");
        out.println("<th>이메일</th>");
        out.println("<th>전화번호</th>");
        out.println("</tr>");
        out.println("</thead>");
        out.println("<tbody>");

        for (MemberVO vo : list) {
            out.println("<tr>");
            out.println("<td>" + vo.getNumber() + "</td>");
            out.println("<td>" + vo.getId() + "</td>");
            out.println("<td>" + vo.getPassword() + "</td>");
            out.println("<td>" + vo.getName() + "</td>");
            out.println("<td>" + vo.getAge() + "</td>");
            out.println("<td>" + vo.getEmail() + "</td>");
            out.println("<td>" + vo.getPhone() + "</td>");
            out.println(" </tr>");
        }
        out.println("</tbody>");
        out.println("<tr>");
        out.println("<td colspan='7' align='right'>");
        out.println("<a href='member/memberRegister.html'>회원가입</a>");
        out.println("</td>");
        out.println("</tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>");
    }
}

// [MemberInsertController.java에서, sendRedirect 함수 실행 부분]

        MemberDAO dao = new MemberDAO();
        int success = dao.memberInsert(vo);
        if(success > 0) {
            // 가입 성공시
            // out.println("insert success!");
            response.sendRedirect("/memberList.do");        // /memberList.do로 url을 변경한다.
        }
        else {
            // 가입 실패시 예외객체를 만들어서 WAS(톰캣서버) 에게 던진다.
            throw new ServletException("not insert!");
        }


이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함