일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- addClass
- hide
- slideUp
- index %
- ctrl+/
- 파일질라다운로드
- 파일질라설치오류
- removeClass
- Math.round()
- excel중복체크
- SUB함수
- Math.ceil()
- 증가값
- Math.floor()
- toFixed()
- push오류
- FileZilla설치
- 파일질라설치
- Parent
- 소스트리인증실패
- selectedIndex
- selectoptions
- 주석이 먹히지 않을 때
- is_check
- 1521
- Excel
- calc.minus
- FileZilla다운로드
- Git
- calc.plus
- Today
- Total
잡동사니에도 사랑을
[21.11.16] 스프링 MVC (chapter06) 본문
★ 스프링 MVC
스프링 MVC도 컨트롤러를 사용하여 클라이언트의 요청을 처리한다
스프링에서 DispatcherServlet 이 MVC에서 C(Control) 부분을 처리한다.
개발자가 처리할 부분은 클라이언트의 요청을 처리할 컨트롤러와 응답화면을 전송할 JSP나 Velocity 템플릿 등 뷰 코드이다
DispatcherServlet, HandlerMapping, ViewResolver등은 스프링이 기본적으로 제공하는 구현 클래스를 사용한다.
Controller(M) + View(V) + Dispatcher(C)
ModelAndView라는 객체에 실어서 DispatcherServlet에 넘긴다.
ViewResolver는 화면 뿌리는 결과를 xml, jsp 둘 중 어느 것으로 선택할 지 선택한다.
스프링 MVC의 구성 요소
1. DispatcherServlet
클라이언트의 요청을 전달 받는다
컨트롤러에게 클라이언트의 요청을 전달하고 Controller가 리턴한 결과값을 View에 전달하여 응답을 생성하도록 한다.
2. HandlerMapping(내장되어 있음)
클라이언트의 요청 URL을 어떤 Controller가 처리할지를 결정한다
3. Controller(Java 역할을 한다)
클라이언트의 요청을 처리한 뒤 결과를 DispatcherServlet에 알려준다
4. ModelAndView
컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다.
5. ViewResolver
컨트롤러의 처리 결과를 생성할 뷰를 결정한다.
6. View
컨트롤러의 처리 결과 화면을 생성한다.
JSP나 Velocity 템플릿 파일등을 뷰로 사용한다.
본격적으로 실습을 진행해보도록 하자.
웹 구현을 위한 환경 설정을 진행하고자 한다.
먼저 Window - Preferences - Server - Runtime Environment로 들어간다.
Add를 눌러준다.
Apache Tomcat v9.0 버전을 선택한 뒤
Create a new local server를 체크한다. 체크를 누르지 않고 넘어가도 다음에 뜨니 무시해도 괜찮다.
Next를 누르면 저장 위치를 묻는 창이 뜬다.
Tomcat 9.0의 설치 위치를 Browse를 클릭하여 찾는다.
톰캣이 제대로 가동하지 않는 에러(invalid port ~) 가 뜰 경우
Servers의 Tomcat을 더블 클릭하면 Port Number가 ' - ' 비어져있는 것을 확인 할 수 있다.
8005를 입력하고 저장하면 된다.
프로젝트는 생성됐으나 생성 시 빨간 느낌표가 뜨는 경우가 있다.
이를 해결해주기 위한 설정 방법을 알아보자.
먼저 프로젝트를 우클릭하여 Build Path에 들어가 Configure Build Path를 클릭한다.
Server Runtime의 Tomcat 서버 버전을 살펴보면 17로 되어있을 것이다.
더블 클릭해준다.
더블클릭을 하게 되면 Java파일의 Tomcat 버전이 17로 되어 있음을 확인할 수 있다.
이를 11버전으로 고쳐준다.
[실습]
Project : chapter06 (Dynamic Web Project) - *.jar
project명에서 우클릭 - Spring - Add Spring Project Nature
Project : chapter06_SpringWebMaven (Dynamic Web Project) - pom.xml
project명에서 우클릭 - Spring - Add Spring Project Nature
project명에서 우클릭 - Configure - Convert to Maven Project
project명에서 우클릭 - Maven - Update Project...
Project : chapter06_SpringMVC (Spring MVC Project)
① Spring MVC Project requires a download of 16608 bytes - Yes
② 3단계로 package를 작성해야한다
Package를 3단계로 설정할 때 마지막을 Project명(chapter06_SpringMVC)과 똑같이 잡아야 URL의 경로를 /chapter06_SpringMVC로 인식한다
만약 Project명이 chapter06_SpringMVC이고 Package명은 com.example.spring으로 설정하면 URL 경로가 /spring로 잡힌다
http://localhost:8080/chapter06_SpringMVC/main/index.do - error
http://localhost:8080 /main/index.do 하면 결과가 나온다
그러면 경로를 바꾸어야 하는데
Tomcat에서 더블클릭 - Modules(탭) - Path : /spring를 /chapter06_SpringMVC로 변경하면 된다
Please specify the top-level package e.g. com.mycompany.myapp* :
com.example.chapter06_SpringMVC
➂ JDK와 Spring 버전을 변경한다
- JDK는 기본이 1.6 으로 생성된다.
- 스프링은 기본이 3.1.1 으로 생성된다
[예제]
http://localhost:8080/chapter06/hello.do
Project : chapter06
Package : com.controller
Class : HelloController.java
Folder : WEB-INF
web.xml
dispatcher-servlet.xml
Folder : view
hello.jsp
다음과 같이 쓰면 어떻게 될까?
실행결과창을 보면 다음과 같이 404 에러가 난다.
리턴 타입이 String이면 단순 문자열로 인식하는 것이 아니라 파일명으로 인식한다.
'SPRING' 카테고리의 다른 글
[21.11.17] WAC (Web Application Context) 등록 - (chapter06_SpringWebMaven) (0) | 2021.11.17 |
---|---|
[21.11.17] (chapter06_1) (0) | 2021.11.17 |
[21.11.11] (sample01 - chapter03_SpringMaven) (0) | 2021.11.11 |
[21.11.11] AOP 예제 (sample01 - chapter03) (0) | 2021.11.11 |
[21.11.11] (sample05 - chapter02_SpringMaven) (0) | 2021.11.11 |