4. 설정 및 구현 - 3

2021. 7. 9. 21:10· 스터디📖/Spring
목차
  1. 14강 스프링 MVC 웹서비스 - 1
  2. 14-1 웹 서버(Tomcat) 다운로드
  3. 14-2 웹 서버(Tomcat) 와 이클립스 연동
  4. 14-3 이클립스에 STS(Spring Tool Suit) 설치
  5. 14-4 STS를 이용한 웹 프로젝트 생성
  6. 15강 스프링 MVC 웹서비스 - 2
  7. 15-1 프로젝트 전체 구조
  8.  
  9.  
  10. 15-2 web.xml
  11. 15-3 DispatcherServlet
  12. 15-4 servlet-context.xml
  13. 15-5 Controller(컨트롤러)
  14. 15-6 View(뷰)

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC_renew/dashboard

 

자바 스프링 프레임워크(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
  1. 14강 스프링 MVC 웹서비스 - 1
  2. 14-1 웹 서버(Tomcat) 다운로드
  3. 14-2 웹 서버(Tomcat) 와 이클립스 연동
  4. 14-3 이클립스에 STS(Spring Tool Suit) 설치
  5. 14-4 STS를 이용한 웹 프로젝트 생성
  6. 15강 스프링 MVC 웹서비스 - 2
  7. 15-1 프로젝트 전체 구조
  8.  
  9.  
  10. 15-2 web.xml
  11. 15-3 DispatcherServlet
  12. 15-4 servlet-context.xml
  13. 15-5 Controller(컨트롤러)
  14. 15-6 View(뷰)
'스터디📖/Spring' 카테고리의 다른 글
  • 4. 설정 및 구현 - 5
  • 4. 설정 및 구현 - 4
  • 4. 설정 및 구현 - 2
  • 4. 설정 및 구현 - 1
호프
호프
Untitled호프 님의 블로그입니다.
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
4. 설정 및 구현 - 3
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.