[Web] 모델2 방식 설계

kiwonkim·2021년 6월 17일
0

모델2 방식이란?

모델 1 방식

DAO를 호출하여 비즈니스로직을 수행하고.
수행결과를 브라우저로 출력하는 역할을 모두 JSP가 수행하는것.

모델 2 방식

웹 어플리케이션의 메인 기능인 요청 처리, 화면 기능, 비즈니스 로직을 분리하여 구현하는 방식.

MVC 패턴

모델 2 방식의 디자인 패턴 중 가장 많이 활용되는 디자인 패턴

Model : 데이터베이스와 비즈니스로직을 위한 것. DAO와 VO로 구성됨.
View : 비즈니스로직 수행결과를 구현하여 브라우저로 출력하는 것은 JSP가.
Controller : 클라이언트의 요청을 받아 분석. 필요한 모델 호출하여 결과 처리. 최종 결과는 View 에게 포워딩.


MVC 패턴 이용 회원 관리 사이트

기능

  1. 회원 목록 출력
  2. 회원 가입
  3. 회원 수정
  4. 회원 삭제

구현 파일

Model

  • MemberVO.java : MemberVO 객체의 멤버 변수에 대해 set, get 함수들 내장.
  • MemberDAO.java : 커넥션풀을 활용한 DB와 연결 및 쿼리문으로 비즈니스 로직 담당.

Controller

  • MemberController.java : 클라이언트의 입력 url에 따라 Model들을 호출하여 원하는 결과를 도출하고. 결과를 View단으로 포워딩.

View

  • listmember.jsp : 회원 목록 출력시 사용할 jsp. 컨트롤러에게 받은 회원 정보 arraylist를 순회하며 결과 출력.
  • memberForm.jsp : 회원가입시 사용할 jsp. 여기서 클라이언트가 입력한 정보를 post 방식으로 컨트롤러로 전송됨.
  • modmemberForm.jsp : 회원수정시 사용할 jsp. 입력된 값 컨트롤러로 전송.

1. 회원 목록 출력

Model

  • MeberDAO 생성자

커넥션풀을 이용해 연결을 받아올 때 사용하는 DataSource 객체 생성 해놓는 역할.

  • listMembers 함수

DataSource로 연결 받아오고. select 쿼리문 수행하여 결과셋 반환.

Controller

request.getpathInfo() 함수를 통해 url에서 / 이후의 값을 가져오며, 가져온 값에 따라 어떤 기능을 수행할지 결정.
nextPage라는 문자열을 도입하여 dispatch로 다음 표시할 페이지 결정.

action이 listMembers.do라면. DAO의 listMembers 함수를 통해 arraylist 결과 가져와 request에 속성으로 추가하고. listMembers.jsp 에게 포워딩.

View

listMembers.jsp는 ${변수명}으로 arraylist를 사용하며. 순회하며 회원 정보 출력.

결과

다음과 같이 회원정보가 출력됨
수정과 삭제는 클릭시 get방식으로 Controller에게 id 전달 및 수정/삭제 요청을 하게된다.
회원 가입하기는 누를시 Controller에게 회원 가입 요청을 하게됨.

2. 회원 가입

회원 가입하기를 누른다면 컨트롤러는 memberForm.jsp로 디스패치해주어. 회원가입 정보 입력창이 뜨게된다.

memberForm.jsp는 사용자에게 정보를 입력받고. 컨트롤러에게 Post방식으로 전달한다.

컨트롤러는 VO객체를 생성하여 memberForm.jsp에게 받은 데이터를 저장하고. 이를 매개변수로 넘겨주어 DAO의 addMember메소드를 수행한다.

DAO는 위와 같이 Insert를 수행하며. nextPage로 listmembers.do로 포워딩 해주었기에 회원목록조회 기능이 수행된다.

3. 회원 수정

회원 목록 조회에서 수정을 누르면 컨트롤러에게 id를 보내며 처리요청을 하게된다.

컨트롤러는 해당 Id를 갖는 투플을 VO객체로 저장하여 반환하는 DAO의 findMember를 호출하고. VO객체를 바인딩하여 JSP로 포워딩한다.
(수정하기 전 내용을 갖고. 수정 후 내용을 입력받기 위해서)

jsp는 수정할 내용을 입력받고 컨트롤러에게 post방식으로 전달한다.

컨트롤러는 DAO에서 UPDATE 쿼리문을 사용하여 데이터를 갱신하고 nextpage로 회원목록조회 창을 표시한다.

회원 삭제

회원 목록 조회에서 삭제를 누르면 컨트롤러에게 id를 보내며 처리요청을 하게된다.

컨트롤러는 DAO에서 Delete 쿼리문을 통해 투플을 삭제하고 회원목록조회 창을 표시한다.

0개의 댓글

관련 채용 정보