[Spring] Model 아키텍처 (2)

2020. 7. 31. 03:37Spring/Spring

1. Model 2 아키텍처

1) Model 2 아키텍처

MVC 패턴으로 Model 1과 다르게 Controller 서블릿 클래스 중심으로 구현된다.

2) 서블릿 생성 및 등록

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

DispatcherServlet 추가 후 web.xml에 자동으로 추가된 내용에 불필요한 <description>과 <display-name> 설정을 제거한다.

/src/main/WEB-INF/
web.xml

web.xml

3) Controller 서블릿 구현

DispatcherServlet GET 요청 처리는 doGet() 메서드, POST 요청 처리는 doPost() 메서드를 사용한다. 하지만 어떤 요청이든 process() 메서드를 통해 클라이언트 요청을 처리한다.

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

4) 로그인 기능

MVC로 변환하기 위해 <form> 태그의 action 속성값을 수정하여 DispatcherServlet이 동작하도록 설정한다.

/src/main/webapp/
login.jsp

login.jsp

이 후, 로그인 기능을 수행하는 로직을 DispatcherServlet에 추가한다.

/src/main/java/
DispatcherServlet.java

DispatchServlet.java

4) 글 목록 출력 기능

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

※ 사용하지는 않았지만, 서버 통신간 유지하려는 정보인 세션은 브라우저당 서버 메모리에 하나씩 사용하기 때문에 사용자가 많을 수록 많은 세션이 생성이되며, 서버에 부담이 많아진다. 이러한 문제점을 해결하기 위해 HttpServletRequest 객체를 이용하여 서버의 부담을 줄인다. HttpServletRequest는 매 요청당 새로 생성이되며, 요청에 대한 응답이 전송될 경우 삭제되는 1회성 객체이다.

 

데이터베이스 연동 처리를 DispatcherServlet 클래스에서 대신 처리해주고 세션에 저장된 값을 출력하는 기능만 수행한다.

/src/main/webapp/
getBoardList.jsp

getBoardList.jsp

5) 글 상세 기능

/src/main/webapp/
getBoardList.jsp, getBoard.jsp

getBoardList.jsp, getBoard.jsp

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

6) 글 등록 기능

/src/main/webapp/
insertBoard.jsp

insertBoard.jsp

insertBoard_proc.jsp의 자바 코드를 DispatcherServlet에 옮긴다. 새 글 등록 후 이전 화면으로 넘어갔을 경우, 변경되지 않는 사항 적용을 방지하기 위해 다시 getBoardList.do 를 요청하도록 설정한다.

 

여기서 한글 인코딩과 관련된 코드의 경우 DispatcherServlet의 doPost() 메서드가 일괄적으로 처리해주기 때문에 삭제해도 무관하다.

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

7) 글 수정 기능

/src/main/webapp/
getBoard.jsp

getBoard.jsp

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

8) 글 삭제 기능

/src/main/webapp/
getBoard.jsp

getBoard.jsp

/src/main/java/
DispatcherServlet.java

DispatcherServlet.java

9) 로그아웃 기능

/src/main/webapp/
getBoardList.jsp

getBoardList.jsp

/src/main/java/
DispatcherServlet.java

DispatchServlet.java

10) MVC 정리

패키지 파일 정리

1. Model

- /src/main/java/com.springbook.biz.board/BoardVO.java

- /src/main/java/com.springbook.biz.board.impl/BoardDAO.java

 

2. View

- /src/main/webapp/*.jsp

 

3. Controller

- /src/main/java/com.springbook.view.controller/DispatcherServlet.java


[참고] 스프링 퀵 스타트

728x90

'Spring > Spring' 카테고리의 다른 글

[Spring] MVC 구조 (2)  (0) 2020.08.02
[Spring] MVC 구조 (1)  (0) 2020.08.02
[Spring] Model 아키텍처 (1)  (0) 2020.07.30
[Spring] 트랜잭션  (0) 2020.07.30