MVC 모델패턴에서 Model 부분 만들기
Model : 컨트롤러(서블릿)에서 database(mysql) 와 관련된 입출력 처리기능을 분리한 개념이다.
우선 MVC 구조를 보자
Model, View, Controller 형태인 MVC 패턴을
서블릿, DAO, JSP 페이지로 매핑을 하면 아래와 같다.
다시 책 예제와 매핑을 하면 아래와 같다.
흐름에 대한 설명은 책 378 page 참고
DAO 클래스를 만들고 데이터베이스 연동코드를 옮겨둡니다.
[예시) 회원목록 열람기능]
public ListselectList() throws Exception { Statement stmt = null; ResultSet rs = null; try { stmt = connection.createStatement(); rs = stmt.executeQuery( "SELECT MNO,MNAME,EMAIL,CRE_DATE" + " FROM MEMBERS" + " ORDER BY MNO ASC"); ArrayList members = new ArrayList (); while(rs.next()) { members.add(new Member() .setNo(rs.getInt("MNO")) .setName(rs.getString("MNAME")) .setEmail(rs.getString("EMAIL")) .setCreatedDate(rs.getDate("CRE_DATE")) ); } return members; } }
위 코딩과 같이 DAO클래스 selectList() 함수 호출을 함으로써
데이터베이스 입출력 기능을 구현합니다.
12번째 줄에서 ArrayList 저장공간 [members] 에
14번~9번 코드에서 값을 저장한후
21번 코드에서 쿼리 결과가 담긴 members 객체를 return 합니다.
그럼 서블릿에서는
request.setAttribute("members", memberDao.selectList()); RequestDispatcher rd = request.getRequestDispatcher("/member/MemberList.jsp"); rd.include(request, response);
1번 라인에서 2번째 파라미터 결과값이
DAO에서 처리결과물이다. 이 결과물을
members 이름으로 request 에 다시 저장합니다.
(view 에서 이 결과값을 사용하기 위해)
그후 페이지 출력을 위해 2,3번 라인에서
include를 request와 response를 인자로 보내고
페이지 결과값을 브라우저에게 보냅니다.
'프로그래밍 > JSP' 카테고리의 다른 글
servletContextListener 만들기 (0) | 2015.05.21 |
---|---|
GET방식 POST방식 인코딩 처리하기 (2) | 2015.04.05 |
request.getContextPath() ,request.getRequestURI() 등 url 주소 가져오는 함수 (1) | 2015.03.29 |