자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌 - 인프런 | 강의
스프링 프레임워크 기본부터 실전 사용법까지! 충실하고 폭넓은 설명과 예제를 통해 현장에 바로 투입되어 활약하는 개발자로 거듭나세요., 자바 스프링 프레임워크로 내 개발자 커리어에 봄이
www.inflearn.com
섹션 4. 설정 및 구현
14강 스프링 MVC 웹서비스 - 1
14-1 웹 서버(Tomcat) 다운로드
apache-tomcat-8.5.63 다운받아놓은 게 있음.
14-2 웹 서버(Tomcat) 와 이클립스 연동
jre가 default로 되어있다.
14-3 이클립스에 STS(Spring Tool Suit) 설치
강의에선 3.9.2인데 4.11.0 설치했더니 spring legacy project가 뜨질 않는다.
구글링 해보니 STS3 add on for spring tools 4 를 추가로 다운받아야 한다고 해서 다운받았더니 성공.
14-4 STS를 이용한 웹 프로젝트 생성
other > spring legacy project > spring MVC project
15강 스프링 MVC 웹서비스 - 2
15-1 프로젝트 전체 구조
1. java파일 : java파일들이 위치한다. 주로 패키지로 묶어서 관리한다. 웹 애플리 케이션에서 사용되는 Controller, Service, DAO객체들이 위치한다.
2. webapp : 웹과 관련된 파일들(스프링 설정파일, JSP파일, HTML파일 등..)이 위치한다.
3. resources : JSP파일을 제외한 html, css, js파일등이 위치한다.
4. spring폴더 : 스프링 컨테이너를 생성하기 위한 스프링 설정파일이 위치한다.
5. views 폴더 : View로 사용될 JSP파일이 위치한다.
6. pom.xml파일 : 메인 레파지토리에서 프로젝트에 필요한 라이브러리를 내려받 기 위한 메이븐 설정 파일
15-2 web.xml
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
- DispatcherServlet을 서블릿으로 등록해주는 과정. 사용자의 모든 요청을 받기 위해 서블릿 매핑 경로는 '/'로 설정
15-3 DispatcherServlet
사용자의 모든 요청을 DispatcherServlet이 받은 후 HandlerMapping 객체에 Controller 객체 검색을 요청
👉 HandlerMapping 객체는 프로젝트 에 존재하는 모든 Controller 객체를 검색해서 DispatcherServlet 객체에 알려줌
👉 DispatcherServlet 객체는 다시 HandlerAdapter 객체에 사용자의 요청에 부합하는 메소드 검색을 요청
👉 HandlerAdapter 객체는 사용자의 요청 에 부합하는 메소드를 찾아서 해당 Controller 객체의 메소드를 실행
👉 Controller 객체의 메소드가 실행된 후 Controller 객체는 HandlerAdapter 객체에 ModelAndView 객체를 반환하는데 ModelAndView 객체에는 사용자 응답에 필요한 데이터정보와 뷰정보(JSP파일)가 담겨있음.
👉 HandlerAdapter 객체는 ModelAndView 객체를 다시 DispatcherServlet 객체에 반환
15-4 servlet-context.xml
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean> <!-- Bean 생성 -->
<context:component-scan base-package="com.bs.lec14Pjt" />
- 위에서 DispatcherServlet를 서블릿으로 등록할 때 web.xml 파일에서 contextConfigLocation이름으로 초기화 파라미 터를 servlet-context.xml로 지정하고 있는데 이때 지정된 servlet-context.xml파일이 스프링 설정의 역할을 하는 파일이다.
- 스프링 설정 파일은 클래스로부터 객체(빈:bean)를 생성하고 조립하는 역할을 한다고 학습했다. servlet-context.xml에서도 마찬가지로 프로젝트에 필요한 객체(빈:bean) 를 생성하고 조립한다.
15-5 Controller(컨트롤러)
@Controller
public class Controller {
// @RequestMapping("/login") 과 같음. GET메소드는 생략 가능
@RequestMapping(value = "/login", method = RequestMethod.GET)
// 사용자로부터 /login 요청이 발생하면 해당 메소드 실행
public String login(Model model) { //Model: 뷰에서 활용되는 데이터를 담고있는 객체
model.addAttribute("loginKey", "loginValue");
return "login"; //login.jsp - view로 사용되는 jsp파일의 이름
}
}
15-6 View(뷰)
메소드 반환값: return "login"
JSP 파일: /WEB-INF/views/home.jsp
사용자 응답 브라우저: 클라이언트 요청 정보(URL맵핑값)에 해당하는 JSP파일 실행
'스터디📖 > Spring' 카테고리의 다른 글
4. 설정 및 구현 - 5 (0) | 2021.07.13 |
---|---|
4. 설정 및 구현 - 4 (0) | 2021.07.12 |
4. 설정 및 구현 - 2 (0) | 2021.07.08 |
4. 설정 및 구현 - 1 (0) | 2021.07.07 |
4. 설정 및 구현 (0) | 2021.07.06 |