취미로 음악을 하는 개발자

[Spring] 스프링 MVC 웹 서비스 본문

공대인/Spring[Boot]

[Spring] 스프링 MVC 웹 서비스

영월특별시 2019. 5. 25. 23:39
728x90

이클립스와 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

위는 서버 시간을 구하고 modelserverTime이라는 속성을 추가해서 그 속성에 서버 시간의 데이터를 넣은 것이다.

- 참고로 위에 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으로 설정



Comments