Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spring
- JavaScript
- vb.net
- Linux_명령어정리
- SQL_용어정리
- Git_명령어정리
- SQL
- Git_정리
- workbench
- 배열
- HTML
- 자바
- json
- 자바스크립트
- 다이어그램
- CSS
- MySQL
- Spring_오류정리
- 아파치톰캣
- Spring_에러정리
- github
- 이클립스
- 인스턴스
- DML
- jsp
- 인덱스
- Linux
- git
- java
- asp.net
Archives
- Today
- Total
데브마우스
[JSP] MVC 패턴 정리 본문
MVC 패턴이란 무엇인가요?
MVC는 Model, View, Controller의 약자로써 웹 애플리케이션을 비즈니스 로직, 프레젠테이션 로직, 데이터로 분리하는 디자인 패턴입니다. 실무에서 제일 많이 사용하는 '틀'이라고 할 수 있습니다.
패턴의 구성 요소 | 해당 요소 | 설명 | |
Model | DAO | DB |
애플리케이션의 데이터(DAO)와 비즈니스 로직을 담는 객체입니다.
|
View | HTML | JSP |
사용자에게 모델의 정보(데이터)를 보여주는 역할을 합니다.
|
Controller | 흐름제어 |
모델과 뷰 사이에 어떤 동작이 있을 때 조정하는 역할을 합니다.
|
MVC 패턴의 구조
MVC 패턴의 구조와 요청 처리 흐름도 | ||||||||
클라이언트 (웹 브라우저) |
1. 요청 → | web.xml(전처리) 후 (서블릿) 컨트롤러 |
2. → | 모델 (자바빈즈) |
3. ←→ |
데이터베이스
|
||
4. ← | ||||||||
↑ | ↓ 5 | |||||||
↖ | 6. 응답 ← | 뷰 (JSP 페이지) |
||||||
MVC 패턴의 처리 흐름을 풀어서 설명하면 아래와 같습니다.
- 웹 브라우저가 웹 서버에 웹 애플리케이션 실행을 요청하면 웹 서버는 요청을 처리할 수 있는 컨트롤러(서블릿)를 찾아서 요청을 전달합니다.
- 컨트롤러(서브릿)는 모델 자바 객체의 메소드를 호출합니다
- 데이터를 가공하여 값 객체를 생성하거나 JDBC를 사용하여 데이터베이스와의 인터렉션을 통해 값 객체를 생성합니다.
- 업무 수행을 마친 결과 값을 컨트롤러에 반환합니다.
- 컨트롤러는 모델로부터 받은 결과 값을 뷰에 전달합니다.
- JSP는 전달받은 값을 참조해서 출력할 결과를 만들어 웹 서버에 전달하고, 웹 브라우저는 웹 서버로부터 결과 값을 받아 화면에 출력합니다.
MVC 패턴의 프로그램 개발 시 코드 작성 순서
MVC 패턴의 프로그램 개발 시 MVC 패턴 6단계 동작 원리처럼 코드를 작성하면 됩니다. 첫번째 요청을 시작으로 여섯번째 응답까지의 과정대로 코드를 작성하시는걸 기준으로 삼고 프로그램 개발하시는걸 추천합니다.
MVC 패턴의 장단점
장점 | 단점 |
- 뷰와 로직 처리에 대한 분업이 용이합니다. - 기능에 따라 분리되어 있기 때문에 유지 보수가 용이합니다. - 확장이 용이합니다. |
- 구조가 복잡하여 습득하기 어렵고 작업량이 많습니다. - 코드가 분리됨으로써 관리해야 할 파일이 많아집니다. |
JSP에서 MVC 패턴의 구현 방법
JSP에서 MVC 패턴의 구현 방법으로는 2가지 방법이 있습니다.
- web.xml 파일로 서블릿 구성하기
- annotaiton을 @Override하여 사용하기
web.xml 파일로 서블릿 구성하기
[<servlet> 요소로 서블릿 클래스 등록하기]
|
||
<servlet> | ||
<servlet-name>서블릿 이름</servlet-name>
|
||
<servlet-class>서블릿 클래스(패키지 이름.클래스)</servlet-class>
|
||
[<init-param> | ||
<param-name>매개변수 이름</param-name>
|
||
<param-value>매개변수 값</param-value>
|
||
</init-param>] | ||
</servlet> | ||
[<servlet-mapping> 요소로 요청 URL 패턴 설정하기]
|
||
<servlet-mapping>
|
||
<servlet-name>서블릿 이름</servlet-name>
|
||
<url-pattern>요청할 URL 패턴</url-pattern>
|
||
</servlet-mapping>
|
||
<url-pattern>에서 *은 모든 이름 다 포함을 의미합니다.
|
@WebServlet("경로") annotation을 @Override하여 사용하기
@WebServlet("/first")
public class test1 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("퍼스트입니다.");
}
}
Controller의 3가지 역할
MVC 패턴에서 Controller는 3가지 역할을 수행합니다.
Controller 프로그래밍을 작성할 때 3가지 역할에 부합하는지 생각하며 프로그래밍을 작성해야합니다.
3가지 역할은 아래와 같습니다.
- 전처리
- DAO
- 페이지 이동
'JSP > JSP: 정리' 카테고리의 다른 글
[JSP]web.xml의 <url-pattern> 경로 주의사항 (0) | 2023.12.26 |
---|---|
[JSP] out 내장 객체 정리 (0) | 2023.12.21 |
[JSP] response 내장 객체 정리 (0) | 2023.12.21 |
[JSP]JDBC를 사용한 JSP와 DB의 연동 순서 (0) | 2023.12.21 |
[JSP] request 내장 객체 정리 (0) | 2023.12.20 |