진짜 개발자
본문 바로가기

Web/JSP,Servlet

Servlet - Servlet의 데이터 공유

728x90
데이터 공유(ServletContext)

여러 Servlet에서 특정 데이터를 공유해야하는 경우 context parameter를 이용해서 web.xml에 데이터를 기술하여 servlet에서 공유하며 사용가능하다.

 

 

1. web.xml에 공유 데이터 기입

그림과 같이 프로젝트의 WebContent 하위 디렉토리인 WEB-INF에 위치한 web.xml을 편집한다.

 

 

<context-param> 태그를 기입한뒤 내부에 초기화 파라미터와 비슷하게 각 파라미터를 구분할 수 있도록 하는 <param-name>태그와 그 파라미터의 값을 의미하는 <param-value>태그를 기입한다.

 

 

1.2 공유 데이터 사용

getServletContext()메소드를 실행하면 ServletContext객체를 얻을 수 있는데 ServletContext객체 안에 각 초기화 파라미터 정보들이 들어있다. 따라서 getServletContext().getInitParameter("파라미터 name")을 입력하여 해당 정보를 가져와 사용할 수 있다

 

 


2. Class 분석

어떤 클래스들이 사용되었고 무슨 역할을 하는지를 살펴보도록 한다.

 

2.1 ServletConfig

ServletConfig Interface는 Servlet 구성 객체로 Servlet Container가 초기화 될 때 Servlet에게 정보를 넘겨주기 위해 사용하는 것이라고 한다.

 

 

메소드들을 살펴보자

1. getInitParameter(String name)

매개변수로 주어진 name을 이용하여 초기 파라미터값을 가져온다.

2. getInitParameterNames()

서블릿의 초기화 파라미터를 String 객체의 열거형으로 반환한다.

3. getServletName()

해당 서블릿 객체의 이름을 돌려준다.

4. getServletContext()

ServletContext 객체를 돌려준다.

 

ServletConfig는 하나의 Servlet에 대한 정보를 가져오기 위한 것이다. 그렇다면 ServletContext가 무엇을 하는 객체인지 알아보자.

 


2.2 ServletContext

Servlet이 Servlet Container와 소통하기위한 메소드들의 집합을 정의한 객체이며 ServletContext객체는 ServletConfig객체에 포함되어있다. ServletContext는 모든 서블릿이 공유하기 위한 데이터들을 가지고 있는 객체이다.