클라이언트는 브라우저만 있으면된다.
그리고 서버에서는 WAS가 떠있어야된다. (Tomcat이라는 서버)
톰캣을 띄우면 config라는 폴더 안에 server.xml, web.xml와 같은 설정파일을 싹 읽어들인다.
톰캣을 띄우면 다음과 같은 과정이 발생한다.
- server.xml
- 만든 프로젝트를 메모리에다가 올린다. src-main-Meta-INF-context.xml 실행
- context.xml
- 이런 resource를 만들어 낸다는 설명 . WatchResource에 있는걸 봐(web.xml)
- web.xml
- 웹이 아닌애들과 웹에서 설정해야하는 애들을 나눈다.
- 웹 관련X
- 웹과 관련없는건 context-param에서 해준다. (service, dao, dto, aop...db 설정), 이런 프로젝트가 올라갈때 이런 param들을 준다는 뜻. root.xml의 위치를 알려준다.
- listener는 감시자로써 로딩되는 순간을 잡아내고 context-param을 가져와준다. 이 contextLoaderListener가 root-context.xml을 로딩해준다.
- 웹 관련
- filter
- servlet(DispatcherServlet)
- servlet-mapping
- root-context.xml
- model설정(component-scan 또는 bean)
- 여기서 비웹적인 애들을 처리해준다.DAO, Service, Dto, AOP 같은것들,,
<context:component-scan base-package="com.ssafy.ws.model, com.ssafy.ws.util"></context:component-scan>
- servlet-context.xml
- 여기서 웹적인 애들을 처리해준다. Controller
<context:component-scan base-package="com.ssafy.ws.model, com.ssafy.ws.util"></context:component-scan>
클라이언트가 호출을 하면(board/list) 다음과 같은 과정이 발생한다.
- DispatcherServlet은 프론트 컨트롤러 역할을 한다. if(act='')이런식으로 걸러준다.
- DispatcherServlet이 실행되고 init-param을 실행해준다.
- setcontextconfig 함수 실행하고 servlet-context.xml이 실행된다.
- handler-mapping을 통해 controller에 해당 매소드를 실행한다.
- controller에서 서비스호출, dao호출, db를 통해 결과를 얻어온다.
- 이를 통해 controller에서 view, model이 나온다.
- viewResolver가 servlet-context.xml에서 beans-property를 통해 앞뒤에 붙을 view의 경로를 알려준다.
- forward를 통해 jsp를 browser로 보내준다.
Filter는 브라우저와 해당 과정을 걸러주는것(req,res) ex)web.xml에서 인코딩 같은거
Aop는 컨트롤러, 서비스, dao사이에 발생하는일
Intercepter는 dispatcherServlet과 controller사이에 발생하는 일
context.xml에서 넣어놓은 db root-context에서 씀
servlet-context에 css, 이미지 등등 자원을 넣어놓는다.
댓글