이번에는 서블릿과 더불어 웹 프로그래밍 개발 시 유용한 기능을 제공하는 클래스들을 알아보겠다.
8.5.1 ServletContext 클래스
ServletContext 클래스는 톰캣 컨테이너 실행 시 각 컨텍스트(웹 애플리케이션)마다 한 개의 ServletContext 객체를 생성한다. 그리고 톰캣 컨테이너가 종료하면 ServletContext 객체 역시 소멸된다. ServletContext 객체는 웹 애플리케이션이 실행되면서 애플리케이션 전체의 공통 자원이나 정보를 미리 바인딩해서 서블릿들이 공유하여 사용한다.
ServletContext 클래스의 특징은 다음과 같다.
• javax.servlet.ServletContext로 정의되어 있습니다.
• 서블릿과 컨테이너 간의 연동을 위해 사용합니다.
• 컨텍스트(웹 애플리케이션)마다 하나의 ServletContext가 생성됩니다.
• 서블릿끼리 자원(데이터)을 공유하는 데 사용합니다.
• 컨테이너 실행 시 생성되고 컨테이너 종료 시 소멸됩니다.
ServletContext가 제공하는 기능은 다음과 같다.
• 서블릿에서 파일 접근 기능
• 자원 바인딩 기능
• 로그 파일 기능
• 컨텍스트에서 제공하는 설정 정보 제공 기능
그림 8-21에는 톰캣 컨테이너를 실행할 때 각 애플리케이션에서 생성되는 ServletContext와 ServletConfig 객체를 나타내었다. ServletContext는 컨텍스트당 생성되는 반면에 ServletConfig는 각 서블릿에 대해 생성된다.

표 8-2는 ServletContext에서 제공하는 여러 가지 메서드의 기능을 정리한 것이다.


8.5.2 ServletContext 바인딩 기능
이번에는 ServletContext의 바인딩 기능을 알아보겠다.
1. 다음과 같이 GetServletContext, SetServletContext 클래스 파일을 준비한다.

2. SetServletContext 클래스를 다음과 같이 작성한다. getServletContext() 메서드를 이용해 ServletContext 객체에 접근한 다음 ArrayList에 이름과 나이를 저장한 후 다시 ServletContext 객체에 setAttribute() 메서드를 이용해 바인딩한다.

➊ ServletContext 객체를 가져옵니다.
➋ ServletContext 객체에 데이터를 바인딩합니다.
3. GetServletContext 클래스를 다음과 같이 작성한다. getServletContext() 메서드를 이용해 ServletContext 객체에 접근한다. 그리고 getAttribute() 메서드를 이용해 다른 서블릿에서 바인딩한 ArrayList를 가져와 회원 정보를 출력한다.

➊ ServletContext 객체를 가져옵니다.
➋ member로 이전에 바인딩된 회원 정보를 가져옵니다.
4. 브라우저에서 요청하면 ServletContext 객체에 데이터를 바인딩합니다.

5. 이번에는 인터넷 익스플로러에서 http://localhost:8080/cget으로 요청한다. 마찬가지로 바인딩된 데이터를 브라우저에 표시한다.

이처럼 ServletContext에 바인딩된 데이터는 모든 서블릿들(사용자)이 접근할 수 있다. 따라서 웹 애플리케이션에서 모든 사용자가 공통으로 사용하는 데이터는 ServletContext에 바인딩해 놓고 사용하면 편리하다.
8.5.3 ServletContext의 매개변수 설정 기능
일단 생략..
'스프링 부트 > 자바 웹을 다루는 기술' 카테고리의 다른 글
| 9.2 <hidden> 태그와 URL Rewriting 이용해 웹 페이지 연동하기 (0) | 2024.01.21 |
|---|---|
| 9장 쿠키와 세션 알아보기 _ 9.1 웹 페이지 연결 기능 (0) | 2024.01.21 |
| 8.4 바인딩 (1) | 2024.01.21 |
| 8.3 dispatch를 이용한 포워드 방법 (2) | 2024.01.21 |
| 8.2 서블릿의 여러 가지 포워드 방법 (1) | 2024.01.20 |