일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 러블리즈
- 장범준
- 개발자
- 신입
- 레이디스코드
- index
- 니가 참 좋아
- 스위트라떼
- 아이유
- 봄 사랑 벚꽃 말고
- IT
- 인덱스
- DBMS
- 천공의 시간
- 6학년 8반 1분단
- 악보
- DBMS 구성요소
- I'm fine thank you
- 핑거스타일
- db
- 슬픔의 후에
- oracle
- nginx
- 데이터베이스
- 오라클
- SQL 처리
- 말 더듬
- 기타
- Inside Of Me
- 오라클 아키텍처
취미로 음악을 하는 개발자
[Spring] 스프링 MVC 웹 서비스 본문
이클립스와 Tomcat을 연동, 포트번호는 DB 포트번호와 충돌나지 않기위해 8090을 사용. 그리고 이클립스에서 STS를 설치해준다.
* 강좌를 보면서 따라해보고 있는데 버전 차이여서 그런지 없는 기능 찾거나 패키지로 설치하는데 시간을 너무 쓰네..
근데 알고보니 EE 설치를 안했었다..
* 이 글에서는 강의자료에서 보여준 자료들이 간단하게 요약되어 있고 첨부된 사진대로 이해하는 것이 가장 좋을 것 같아서 첨부하였습니다.
// MVC 프로젝트 구조
// web.xml
: 웹 어플리케이션에서 최초 사용자의 요청이 발생하면 먼저 DispatcherServlet이 사용자의 요청을 받는다.
따라서 개발자는 DispatcherServlet을 서블릿으로 등록해주는 과정을 설정해주어야 한다.
그리고 사용자의 모든 요청을 받기 위해서 서블릿 맵핑 경로는 '/'로 설정한다.
// DispatcherServlet
1. 사용자의 모든 요청을 DispatcherServlet이 받은 후 HandlerMapping 객체에 Controller 객체에 검색을 요청
2. HandlerMapping 객체는 프로젝트에 존재하는 모든 Controller 객체를 검색
3. HandlerMapping 객체가 Controller 객체를 검색해서 DispatcherServlet 객체에 알려주고
-> DispatcherServlet 객체는 다시 HandlerAdapter 객체에 사용자 요청에 부합하는 메소드 검색을 요청
4. HandlerAdapter 객체는 사용자 요청에 부합하는 메소드를 찾아서 해당 Controller 객체의 메소드를 실행
5. Controller 객체의 메소드가 실행된 후 Controller 객체는 HandlerAdapter 객체에 ModelAndView 객체를 반환하는데
-> ModelAndView 객체에는 사용자 응답에 필요한 데이터정보와 뷰 정보(JSP파일)가 담겨있다.
6. HandlerAdapter 객체는 ModelAndView 객체를 다시 DispatcherServlet 객체에 반환
// servlet-context.xml
: DIspatcherServlet으로 초기 서블릿을 설정할 때 이름을 contextConfigLocation으로 주고 현재 경로는 WEB-INF/spring/appServlet/servlet-context.xml에 있다. 즉, servlet-context.xml 파일이 스프링 설정의 역할을 하는 파일이다.
- <annotation-driven /> : annotation을 사용하기 위한 태그
- 블록 처리되어 있는 곳을 보면 InternalResourceVierResolver라는 클래스를 통해서 /WEB-INF/views/에 .jsp라는 확장자를 더해서 저장해준다.
위는 main/java에 있는 HomeController의 일부인데 return 값이 "home"이라는 것을 알 수 있는데 여기에 .jsp가 붙여져서 home.jsp라는 파일로 응답을 하게 되는 것이다.
// Controller
위는 서버 시간을 구하고 model에 serverTime이라는 속성을 추가해서 그 속성에 서버 시간의 데이터를 넣은 것이다.
- 참고로 위에 RequestMapping문을 보면 value 값이 하나에 method로 get방식을 쓰는데,
value가 하나이면 value를 생략하고 그 값만 쓸 수 있고, method가 GET방식일 때는 그 자체로 생략할 수 있다.
그 예는 아래에 login이라는 클래스를 만들고 "loginKey"라는 속성에 "loginValue"라는 값을 넣은 것을 보여지는 것을 확인하는 사진이다.
// View
// 추후 다시 정리할 내용
webapp - spring-appServlet-servlet-context.xml
: 지정된 경로에 jsp 파일이 있다는 것을 알 수 있음.
web.xml
: DispatcherServlet을 servlet으로 등록, 초기 파라미터로 servlet-context.xml으로 설정
'공대인 > Spring[Boot]' 카테고리의 다른 글
[Spring] Service, Dao 객체 구현 (0) | 2019.05.28 |
---|---|
[Spring] STS를 쓰지 않은 웹 프로젝트 (0) | 2019.05.27 |
[Spring] 웹 프로그래밍 설계 모델 (0) | 2019.05.25 |
[Spring] 어노테이션을 이용한 스프링 설정 (0) | 2019.05.24 |
[Spring] 생명주기 (Life Cycle) (0) | 2019.05.23 |