일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스프링게시판만들기
- crud게시판
- 2020정보처리기사실기정리
- 오버라이딩
- 자바배열예제
- CRUD게시판만들기
- 오라클설치
- 프로그래머스 MYSQL
- 프로그래머스 쿼리문
- jsp 날짜팝업
- 자바기초
- jsp게시판만들기
- 게시판만들기
- PLSQL
- spring crud
- 2020정보처리기사실기
- jsp 팝업띄우기
- 자바 정규표현식 예제
- 프로그래머스 SQL
- 자바연산자
- Oracle기초
- 스프링 CRUD게시판
- 정처기실기정리
- html기초
- js datepicker
- spring crud게시판
- 날짜지정팝업
- 스프링 crud
- 정보처리기사실기정리
- 2020정보처리기사실기요약
- Today
- Total
영보의 SystemOut.log
[Spring] MVC / MVC동작 순서 본문
# MVC
- Model : 요청 처리 => 확장(재사용) 일반 자가
- Conrtoller : 서블릿 (모델과 뷰를 연결해주는 역할 수행)
- View : 요청 처리된 결과값을 출력 => JSP(EL,JSTL)
# 인터페이스
- 서로 다른 여러개의 클래스를 묶어서 한개의 이름(인터페이스)으로 관리(제어)
# 상속
- extends, implements
class A ==> A 데이터형
class B ==> B 데이터형
interface I
class C implement I ==> 데이터형 (I,C)
interface 동물
class 개 implements 동물(개,동물)
동물 ani=new (개)
→ 인터페이스에 존재하는 메소드에 한정 → 인터페이스에 메소드를 증가 → 구현하고 있는 모든 클래스 에러 발생
→ POJO (인터페이스 구현(X), 상속(X)) → 구분(어노테이션) => Spring
# 매개변수 전송 방식
- Call By Value : 다른 메모리에 값을 복사(일반 데이터)
- Call By Reference : 같은 메모리 주소 원본이 넘어간다
# MVC 동작 순서
브라우저에서 요청을 받는 경우(JSP/Servlet)
request (request를 받아서) request 데이터베이스 연결
사용자 ──────── 컨트롤러 ─────────Model클래스 ─────────데이베이스(DAO)
결과값을 받는다 request에 값을 담아서 (setAttribute())
──────────Model클래스 ─────────컨트롤러 ─────────JSP로 전송 ────> 사용자
사용자가 보내준 request를 이용해서 ──> 결과값을 담아 준다 ──> (request는전체 동일하다)
Call By Reference
# Controller →연결해야되는 모델과 뷰를 알고 있다
1) 요청 받는다
String cmd=request.getRequestURI()
→ (list).do
2) 모델을 찾는다 → ListModel
3) 모델에서 넘겨준 결과 값을 request, session에 담아서 request.setAttribute()
4) JSP를 찾고 → request, session을 넘겨준다
forward(request, response)
list.do → ListModel → list.jsp
detail.do → DetailModel → detail.jsp → Map을 이용해서 (요청:키,해당 자바파일)
**Controller가 수정하기 위해서 Controller를 소스 수정 ==> 전체 사이트를 구동할 수 없다
# .jsp VS .do
1
2
3
4
5
6
|
<beans><!-- 스프링Bean(Model클래스) -->
<bean id="list.do" class="com.sist.model.ListModel"/>
<bean id="detail.do" class="com.sist.model.DetailModel"/>
<bean id="insert.do" class="com.sist.model.InsertModel"/>
<bean id="insert_ok.do" class="com.sist.model.InsertOkModel"/>
</beans>
|
cs |
- 위 코드에서 list.do 일 때는 ListModel을 실행하고, 마찬가지로 ~.do일 때는 ~Model을 실행하라 되어있다. ListDataModel이랑 DetailModel은 스프링 실행순서 마지막으로써 화면에 그대로 쏴주기만 하면 되기 때문에 jsp를 리턴하는 것인데,
InsertOkModel은
1. list.do를 리턴
2. 리턴된 .do를 Controller에서 받아서
3. ListModel을 거쳐야됨
이러한 이유로 .do를 리턴하는 것이다.
→ Controller - Model이 서로 데이터를 주고받고나서 마지막으로 html만 쏴주면 되는 상황에서는 .jsp로 리턴
- Model이 서로 데이터를 주고받는 과정 속에서는 .do로 리턴해야 한다.
'Spring' 카테고리의 다른 글
[Spring] Spring MVC 구조 자유게시판 만들기 - (2) (0) | 2020.11.10 |
---|---|
[Spring] Spring MVC 구조 자유게시판 만들기 - (1) (2) | 2020.11.07 |
[Spring] Spring 데이터 그리드 리스트 출력하기 (0) | 2020.11.03 |
[Spring] STS & Eclipse 글꼴 설정하기 (2) | 2020.10.20 |
[Spring] Spring MVC구조 / MVC 패턴 (2) | 2020.10.08 |