DataSource + Pool + 리스너 + 속성
Connection Pool???
Pool : 자원을 많이 사용하는 인스턴스 생성을 저장하여 사용할 수 있는 공간
Pool을 사용하는 이유는 인스턴스 생성에 자원을 많이 사용하기 때문에 여러 서블릿에서 중복적으로 사용되는 인스턴스에 대한 저장공간을 만들어서 계속 자원을 유지하면서 사용할 때 빠르게 접근하고 중복 생성으로 인한 자원 낭비를 없애기 위한 것 입니다.
리스너 : 리스너 사용하여 데이터소스를 사용할 서블릿 사용 순서 정할 수 있음 . 서블릿이 사용 될때 DataSource 초기화 작업을 하기 위해서 사용
▶//속성과 리스너
●속성
- 컨테이너가 어플리케이현을 준비하면서 필요한 초기값, default값을 내가 줄 수 있다.
- 어플리케이션 뿐만 아니라 servlet각각에 대해서도 초기 값을 줄 수 있다.
- 어플리케이션이나, 서블릿에게 내가 원하는 값을 갖고 생성되게 할 수 있다.
● 초기화 파라미터
- 서블릿은 초기화 파라미터(initaialzation parameters)를 가질 수 있다.
- 초기값을 주기위해 DD안에 정의하는,,
- 컨테이너는 DD를 참조하면서 어플리케이션을 준비하는데, 초기화값이 있으면 초기화 값을 갖고 생성시킨다.
- 아래와 같이 쓴다.
<web-app>-> DD안에있다.
<초기화값>-> <init-param>
<서블릿>
<초기화값>
- 사용법은
getServletConfig().getInitParameter("이름");
- Servlet을 준비 할 때,
ServletConfig 파일을 만들어놓고 그 안에 DD에서 읽은 내용을 ServletConfig객체 안에 내용을 저장한다.
●Servlet 초기화
1. 서블릿을 초기화 할 대 서블릿당 하나씩 servletConfig생성
2. DD에서 서블릿 초기화 파라미터를 읽고 ServletConfig에 정보를 저장, 그 ServletConfig를 init()메소드에준다
- 컨테이너는 서블릿을 초기화할 때 단 한번 서블릿 초기화 파라미터를 읽는다.
- 컨테이너는 서블릿을 만들 때, DD읽어 이름/값 쌍으로 ServletConfig를 생성한다.
- 서블릿이 다시 배포되지 않는한 DD를 바꾼다고 수정되지 않는다.
※inti()는 객체들도 파라미터로 가질 수 있다!!
●Context inti parameters
-컨텍스트 초기화 파라메터
-해당 app에 속한 모든 servlet에서 호출할 수 있으며 jap파일에서도 같은 값을 호출한다.
-ServletContext는 jsp나, 서블릿을 컨테이너 또는 다른 웹app와 연결하는 끈.
-서버와 컨테이너의 정보 역시 가져올 수 있다.
●context-parameter는 <web-app...> 아래, config-parameter는 <servlet>
●초기화 파라미터로 데이터베이스 datasource를 저장할 수도있다.
-컨텍스트 초기화 파라미터엔 String밖에 지정안된다
-따라서, 파라미터 값으론 DataSource의 검색명을 저장한다.
cf.)
▶DataSource
-ConnectionPool을 구현한 것.
-서블릿들이 풀장에서 커넥션을 가져다 쓰도록 하는..
▶ConnectionPool(커넥션이 떠있는 공간)
- 커넥션을 미리 만들어두고 꺼내썼다가 다시 넣어뒀다 하는 공간
- 리소스 절약을 위해.
- 서블릿당 하나 존재, 서블릿 속성을 주기 위해 필요한 객체
- 컨테이너가(ex..Tomcat) 서블릿을 초기화 할 때, 서블릿에 대한 정보(DD안에있는) 정보들을 담아두는 객체.
- 애플리케이션당 하나 존재, 애플리케이션의 속성을 주기 위해 필요한 객체
cf)Context(기반, 환경, 배경, 바탕)
======================================Listener=========================================
●8가지 리스너가 존재한다.
-리스너(Listner:ServletcontextListener)
-ServletContext가 살아남을 알리는 리스너.
●DD에 이벤트가 발생하면 수행 할 수 있도록 Listener를 등록한다.
-형식
<listener>
<listener-class>example.listener.MyContextListener</listener-class>
</listener>
-구현
ServletContextListener를 구현하는 클래스를 만든다.
내부에 있는
contextInitialized : Context가 초기화 될 때 실행되는 메소드
contextDestroyed : Context가 소멸될 때 실행되는 메소드
●주로 DB에 연결할 때, Conecction등을 DataSource에 등록해 놓고, 필요할 때 마다 꺼내다 쓸때 사용한다.
'개발 Programming > JSP& SERVLET' 카테고리의 다른 글
ServletContext객체를 이용하여 전역변수처럼 사용할 객체초기화 시키는 예제 (0) | 2009.08.10 |
---|---|
이클립스 + 오라클 + 톰캣5.5 연동 + Data Source Setting (0) | 2009.08.08 |
init() + ServletContext 객체 + ServletConfig 객체 + 웹 어플리케이션 초기화 (0) | 2009.08.07 |
서블릿 + POST,GET 큰 차이점? + 리다이렉트(redirect) + 디스패치(dispatch) + 멱등 + 배포 서술자(DD : Deployment Descriptor) (0) | 2009.08.06 |
MVC + 사용한 JSP 예제 (0) | 2009.08.04 |