-
컨테이너란 무슨뜻일까개발/java 2015. 1. 15. 00:10
JSP컨테이너는 서블릿 컨테이너와 같다.
(서블릿 컨테이너란?
서블릿을 동작 시킬수 있는 환경을 제공하는 서버 프로그램입니다. 즉 HTTP 요청을 받아서 해당 서블릿을 동작을 시키고 그 결과를 사용자의 브라우저로 전달을 해줄 수 있는 기능을 제공합니다. 보통 컨테이너라고 하는 이유는 서블릿 프레임워크 안에서 동작을 하고 서블릿이 동작할 수 있는 환경을 제공해주며, 기타 필요한 작업등을 제공해주기 때문에 그렇게 얘기를 합니다. 즉 HTTP 파라미터 파싱 및 결과 전달 컨트롤, Forwarding, Redirecting 등의 기능을 컨테이너에서 제공을 해줍니다. 이때 서블릿 개발자는 자신이 만든 서블릿을 이 컨테이너에 등록을 하게 되고, 실제 동작을 컨테이너가 알아서 하게 되기 때문에 사용되는 언어입니다.
)
JSP를 해석하고 실행할수 있는 프로그램을 톰켓이라고 부르고
톰켓이라는 소프트웨어를 우리는 컨테이너라고 부른다.
그리고
스프링컨테이너 == IOC 컨테이너 == applicationContext
SPRING 컨테이너란
우리는 web.xml 에 서블릿태그를 하나 생성한다.
예를들면 아래와 같이 서블릿을 만든다
서블릿클래스는 springframework 안에있는 DispatcherServlet 서블릿을 이용하고
<param-value>/WEB-INF/spring-web-servlet.xml</param-value> 이쪽에 있는 xml로보내주게 된다
따로 입력하지 않았을경우에는 기본값으로 <servlet-name>이름</servlet-name> 이름-servlet.xml 으로 생성된다
이쪽 아래있는 이름-servlet.xml 파일을 우리는 스프링 컨테이너라고 부른다.
이쪽에 스프링관련된 파일들을 다때려 넣어서 만들수도 있지만
<servlet><servlet-name>spring-web</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-web-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>아래와 같은ContextLoaderListener 를 만들어서
<param-name>contextConfigLocation</param-name> 위에 init-param안에 넣어준다
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/context-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
이이유는 root context 와 child context 로 나눠지는데
ContextLoaderListener 에 해당하는 부분이 root context 가 되고
DispatcherServlet 에 해당하는 부분이 child context 가 된다
이렇게 둘로나누어지면서
자바 객체지향 상속관계에 관한 내용중에
자식은 부모에 있는 내용을 상속받아서 사용할수는 있지만
부모는 자식에 있는 내용을 상속받아서 사용할수 없다.
마찬가지로 child context 에 있는 설정정보들을 root context에서는 사용을 못한다.
그렇게 스프링 컨텍스트 는 루트와 자식컨텍스트로 나눠진다.
스프링컨테이너 == IOC 컨테이너 == applicationContext
'개발 > java' 카테고리의 다른 글
기본설정 (0) 2015.12.18 JPA 시작 (0) 2015.12.18 서브도메인과의 opener 권한문제 해결방법 (0) 2015.05.03 interface 와 추상클래스 차이 (0) 2015.01.17 전자정부프레임워크에서 프로퍼티값 가져오기 (0) 2014.10.12