ServletContext
웹 어플리케이션들이 공통적으로 관리하고 참조할 수 있는 정보를 공유하기 위해서 Servlet은 ServletContext란 것을 제공한다. 이 ServletContext를 사용하여 servlet간에 자원을 공유하게 됨으로써 한정된 서버자원을 절약하는 것은 물론이고, servlet들이 하나의 어플리케이션으로 통합할 수 있도록 한다. 즉, servlet간에 주고 받아야 할 정보들이 ServletContext를 통해서 공유됨으로서 서로 쉽게 주고 받을 수 있게 되는 것이다.
이렇게 servlet간에 공유정보를 주고받기 위해선 javax.servlet.ServletContext란 인터페이스내의
setAttribute, getAttribute, removeAttribute란 메소드를 이용하면 된다.
setAttribute(오브젝트명, Object) 주어진 이름의 Object를 각 Servlet이 공유할 수 있도록 저장한다.
getAttribute(오브젝트명) 공유 중인 해당 오브젝트명의 Object를 얻어 온다.
removeAttribute(오브젝트명) 해당 오브젝트명의 Object를 메모리에서 삭제한다.
메소드를 사용할 때 주위할 점은 setAttribute를 통해 공유오브젝트를 저장할 경우엔 반드시 java Object형태만 저장이 가능하다는 것이다.
다시 말해 int, long과 같은 형태의 값들은 반드시 Integer, Long과 같은 형태의 Object로 변환한 후에 저장해야 한다는 것이다.
getAttribute 메소드의 경우 리턴값이 Object이므로 원하는 형테로 Class Casting한 후에 사용해야 한다. 즉 setAttribute 메소드를 통해 Integer 형태의 Object를 저장했다면, (Integer)getAttribute("XXX") 와 같이 Casting해야만 한다는 것이다.
'프로그램 > 자바공부' 카테고리의 다른 글
커맨드 패턴 (1) | 2011.06.08 |
---|---|
추상 팩토리 (1) | 2011.06.03 |
인스턴스메소드, 클래스 메소드 / SAX 예외처리, DOM 예외처리/ Uri, Url 차이 (0) | 2011.06.01 |