티스토리 뷰
Maven repository사이트에서 Spring MVC를 받는다.
pom.xml에 넣으면 라이브러리에 포함이 된다.
이 라이브러리중 방금 포함한 Spring-webmvc 안에 DispatcherServlet을 사용할 것이다.
스프링에서 프론트 컨트롤러역할을 하기위한 서블릿이라 할 수 있다.
오른클릭 후 -> Copy Qualified Name 를 눌러 이름을 카피해준다
프론트 컨트롤러역할을 하기위한 서블릿이라 할 수이다.
잠깐 멈춰 이야기하자면
jsp처럼 컨트롤러 영역에서 모든걸 다 해결하는 것이아닌
가장 앞에서 요청을 받는 프론트컨트롤러로 DispatcherServlet을 사용하는 것이기 때문에
web.xml안에 servlet으로 지정해준다
이때 복사한 경로이름에 .class는 지워줘야한다
그다음 컨트롤러의 주소를 적어줘야한다. 이때 /*로 두는 이유는 모든 주소는 일단 이 프론트 컨트롤러가 받는다는 의미가된다.
그 뒤에 동일한 이름(servelt-name)으로 servlet을 이어주면 된다.
하지만 이제 프로그램을 돌려 jsp파일을 불러와도 오류가 뜰것인데
이렇게 web-inf 안에 dispatcher-servlet이 없다는 말을 할 것이다.
web.xml에서 설정한 dispatchr + -servlet 파일인데 (네임이 aaa라면 aaa-servlet이 된다.)
이게 필요한 이유는 모든 url은 디스패처에서 받고 실행되기 때문에
매핑해줄 매핑주소가 필요하기 때문이다.
그럼 web-inf안에 dispatcher-servlet.xml를 생성해준다.
이제 이 xml안에 들어갈 내용을 어떻게 넣는지는
스프링쪽에서 제공한 것을 따라야한다
http://docs.spring.io/spring-framework/docs/로 가면 (바뀔 수 있다)
자신의 스프링 버전으로 가서 spring-framwork-reference를 누르고 core로간다
configuration metadata를
복사한다. 그리고 서블릿 xml에 붙여넣는다
여기서 bean이라는 설정을 통해 클래스를 설정하게되면
얘를 객체화해서 ioc컨테이너안에 담게된다
여기서 id는 이 class로 지정된 것을 꺼내서 사용할때 쓴다
지금 아이디로 넣을 것은 url을 넣는다
class에는 사용할 indexController의 경로를 적는다
이제 id와맞는 요청이 오면 class경로에 있는 것을 객체화해서 꺼내주는 것이다
이제 컨트롤러에서 implements를 이용해서 컨트롤러를 상속한다
그럼 오버라이드로 handleRequest 를 불러올 수 있다.
여기에 오브젝트와 뷰네임을 설정해주자
뷰는 페이지, 오브젝트는 모델로써 데이터를 의미한다
하지만 실행해도 오류가 뜰것인데
이건 뷰에대한 설정이 dispatcher-servlet.xml에 없기 때문이다.
이때 web.xml 에서 url-pattern에 *을 뺀다
그럼 처음 사용자의 요청이 들어오고 설정을 통해
디스패처 -> 컨트롤러까지 가서
리턴으로 온 mv로 뷰페이지를 찾을때에 dispatcher-servlet.xml을 다시 둘러보지만
없는것은 리소스를 다시 요청하게 된다
'dev_공부일지 > Spring Framework' 카테고리의 다른 글
Spring tiles 레이아웃 페이지 만들기와 Tiles 라이브러리 설정하기 (0) | 2021.06.11 |
---|---|
spring 정적파일 서비스하기, 경로설정 (0) | 2021.06.05 |
spring viewResolver 설정하기 (0) | 2021.05.30 |
Spring MVC model2 방식 환경설정하기 (0) | 2021.05.24 |
Sprng DI 1_왜 스프링을 사용하는가 + 느슨한 결합력에 대해 (0) | 2021.05.05 |
- Total
- Today
- Yesterday
- JPA
- 항해플러스
- 백엔드 개발자 역량
- ArgumentResolver
- exception
- BindingResult
- 항해99
- jpa api
- SpringBoot
- thymleaf
- 스프링공부
- 리터럴
- 향해플러스
- React
- HTTP
- 인터셉터
- Java
- 향해플러스백엔드
- filter
- 스프링부트
- 향해99
- Intercepter
- react실행
- 로그인
- reject
- rejectValue
- 예외처리
- 컨트
- 백엔드 개발자 공부
- hypertexttransferprotocol
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |