[spring 기초] MVC 패턴, 패키지 구조, 홈페이지가 열리는 과정
pox에서 설정을 해주고 web에서 한글 필터를 해주고
어떻게 서버가 실행되면 갑자기 페이지가 나오지?
그리고 localhost 뒤에 붙어있는 경로는 어떤 것인지 궁금쓰
- 프로젝트 시작 전 개발환경 세팅
sts 3.9.11 : https://integer-ji.tistory.com/52
oracle 11g : https://integer-ji.tistory.com/55
java 1.8 : https://integer-ji.tistory.com/49
Tomcat 8.5.50 : https://integer-ji.tistory.com/182
프로젝트 구조 살펴보기
먼저 기본으로 MVC프로젝트를 만들었을 때의 구조입니다.
먼저 소개를 하자면
src/main/java : 저희가 직접 개발하는 java의 경로입니다.
controller과 service 등 java클래스와 패키지를 관리합니다.
src/main/resources : 서버가 실행될 때의 경로를 지정해줍니다.
test는 말 그대로 테스트할 때만 사용됩니다.
src/main/webapp/WEB-INF/spring/servlet-context.xml Spring 설정 파일의 경로입니다.
src/main/webapp/WEB-INF/views JSP를 관리합니다.
pom.xml : maven을 설정해줍니다.
* maven이란 자바 프로젝트의 빌드(build)를 자동화해주는 빌드 툴(build tool)입니다.
maven 출처: https://jeong-pro.tistory.com/168 [기본기를 쌓는 정아 맞추어 코딩 블로그]
참고 : https://doublesprogramming.tistory.com/84
https://freestrokes.tistory.com/78
이제 MVC 패턴에 대해 알아보도록 하겠습니다.
위의 경로는 미리 알면 좋지만 저는 직접 해보며 알아가는 주의라
저희가 로컬 홈 화면을 띄우는 과정을 보겠습니다.
MVC 패턴은 Model, View, Controller의 약자입니다.
하나의 프로젝트를 구성할 때 필요한 구성 요소들입니다.
영어문장 그대로 Controller을 이용하여 조작을 하고 Model에서 데이터를 가져와 View를 보여줍니다.
쉽게 말하면 Controller에서 화면을 띄우라고 조작을 하고 조작할 때 필요한 데이터가 있으면
데이터베이스에서 원하는 데이터를 가져오게 Model이 일을 하고
최종으로는 View를 띄워줍니다.
MVC를 나눈 이유?
MVC를 굳이 나눈 이유는
backend와 frontend의 동시 작업이라고 생각합니다. (효율성 업)
참고 : https://m.blog.naver.com/jhc9639/220967034588
Home Controller, Home.jsp을 불러오기 위한 작동 과정
기본적으로 생성되어있는 Controller입니다.
HomeController이란 class가 실행이 되면
20번째 줄에서 Logger을 띄우고
주소 뒤에 /이 오면 (Get방식으로)
"Welcome home! The client locale is {}."를 출력해준 뒤
Date를 가져옵니다. ( 시간 )
그리고 return "home"를 해줍니다.
여기서 Home는 View/home.jsp입니다.
View로 이동해 볼게요
home.jsp를 보면 저희가 서버를 실행하고 보이는 화면인 것을 알 수 있습니다.
Controller에서 요청을 보내면 해당 뷰를 띄우는데
여기서 보이는 다른점은 $(serverTime}입니다.
serverTime은 Controller에서 보내주는 시간입니다.
formattedDate는 serverTime란 이름으로 value객체를 추가합니다.
3번째 줄 import를 보면 java.util을 가져온 것을 볼 수 있습니다.
이렇게 server를 실행하게 되면
Controller에서 "/"가 들어오면 serverTime와 함께 home를 return해라입니다.
이제 서버를 실행해보면
[/WEB-INF/spring/root-context.xml]와 [/WEB-INF/spring/appServlet/servlet-context.xml]
그리고 Mapped "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}"
맨 마지막은 로그가 나오는 모습을 볼 수 있습니다.
큰 틀을 보면 MVC이지만 root-context도 참고하고 servlet-context도 참고하고
많은 파일을 왔다 갔다 하며 실행이 됩니다.
이 부분에 대해서는 직접 실습하면서 서술하겠습니다.
참고 : https://doublesprogramming.tistory.com/84
---
'코딩공부 > Java Spring' 카테고리의 다른 글
[spring 기초] Oracle mybatis 연동, 테이블 조회하기 (0) | 2020.05.17 |
---|---|
[spring 기초] Oracle 11g 연동, pom.xml 의존성 추가 (0) | 2020.05.17 |
[sts 설정] git 연동, master가 없을때, git push, git commit, git pull (0) | 2020.05.16 |
[sts 설정] git과 연동하기 위한 .gitignore 설정 하기 (0) | 2020.05.16 |
[sts 설정] tomcat 8.5 연동, sts 한글 설정하기 (0) | 2020.05.15 |