일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 오버로딩
- 오버라이딩
- 이클립스 설치
- 친절한 SQL
- 산술 연산자
- join
- StringBuffer
- @PreAuthorize("isAuthenticated()")
- 자바의정석
- 친절한 SQL 튜닝
- SQL
- 객체지향
- SQL 튜닝
- 객체
- 반복문
- SQL튜닝
- spring 게시판 삭제
- SpringSecurity 로그인
- 상속
- java
- 함수
- 비교 연산자
- SpringSecurity 로그아웃
- 인텔리제이 Web 애플리케이션
- 스프링시큐리티 로그아웃
- 배열
- 식별자
- 논리 연산자
- 예약어
- 연산자
Archives
- Today
- Total
gi_dor
[Web] MVC 패턴 - Model1 Model2 본문
MVC
- 애플리케이션을 Model - View - Controller 로 역할을 나누어서 개발하는 방식
Model
- View 에 표현할 데이터
- View 에 표현할 데이터를 획득하는 모든 작업
View
- Model 이 제공하는 데이터의 표현
- Model 이 제공하는 데이터를 다양한 컨텐츠 타입으로 변환
Controller
- 사용자(클라이언트)의 요청처리를 직접적으로 받아서 처리해주는 것
- 사용자와 상호작용
❓ 그래서 왜 만들었고 왜 쓰는데
데이터와 비즈니스 로직을 시각적인 표현(디자인 적인 부분)으로부터 분리함
덕분에 화면에 신경쓰지 않고 데이터와 비즈니스 로직을 구성 할수 있게된다.
📌 적용 사례
- Model2 개발방식 : 웹 애플리케이션 개발에 MVC 패턴을 적용
- Spring MVC : 스프링 MVC는 MVC 패턴의 웹 애플리케이션 개발을 지원하는 다양한 라이브러리를 제공한다
- python django : MVC 패턴의 웹 애플리케이션 개발을 지원하는 프레임워크
- struts : MVC 패턴의 웹 애플리케이션을 지워나는 프레임워크 (Spring 등장 이전에 사용 하던 프레임워크)
Model 1
- JSP로만 구현한 웹 애플리케이션이다.
- 클라이언트의 요청을 JSP가 받아서 처리하는 구조다.
- JSP 페이지에 비즈니스로직을 처리하는 코드(자바 코드)와 HTML 코드가 섞여있다.
Model 2
- 웹 애플리케이션 개발에 MVC 패턴을 적용
- Java 코드(비즈니스 로직)와 디자인 코드(HTML)를 분리해서 개발하기위해 도입.
1️⃣ Model
- 비즈니스 로직 수행 (업무 로직수행) , 데이터베이스 엑세스 담당
- 자바 클래스로 구현
2️⃣ View
- 모델이 제공하는 데이터를 표현한다
- JSP 로 구현
3️⃣ Controller
- 클라이언트의 HTTP 요청처리
- 서블릿과 자바 클래스로 구현
1. 요청처리(업무로직 호출, 데이터 획득/전달, 뷰 페이지로 이동)
2. 내부이동 - 브라우저에게 sample.jsp의 실행 요청
Controller와 jsp가 같은 요청객체, 응답객체 공유
요청파라미터 - 쿼리스트링, 폼입력값
//요청객체에 속성을 추가(컨트롤러의 데이터를 뷰에 전달하는 방법)
request.setAttribute(”이름1”, 객체1); //담을 수 있는 데이터 타입의 제한 없음
request.setAttribute(”이름2”, 객체2);
→ 컨트롤러에서 속성 담아놓으면 JSP까지 전달 가능(getAttribute()로)
→ 자바 코드가 실행된 후 JSP가 실행되도록 할 수 있음
→ /sample로 해도 sample.jsp로 내부이동
💡 HttpServletRequest, HttpSession, ServletContext 중 왜 HttpServletRequest에 담을까?
→ 응답이 가면 사라져서
💡 jsp를 직접적으로 호출할 수 없도록 WEB-INF 안에 넣어놓기(서버 바깥에서는 WEB-INF 안의 파일 호출 불가) Controller에서 담기 전이므로 직접 호출 시 jsp에 아무 데이터 출력되지 않음
→ Controller에서 내부이동을 통해서만 jsp 실행 가능
728x90
'Back_End > JSP_Servlet' 카테고리의 다른 글
Redirect , Forward (0) | 2024.03.11 |
---|---|
FrontController - 간단 (0) | 2024.02.14 |
세미 프로젝트 - 로그인 , 세션 다루기 (1) | 2024.02.14 |
JSP 개념 (1) | 2024.01.07 |
인텔리제이에서 Web 애플리케이션 프로젝트 만들기 (1) | 2024.01.01 |