0705 Servlet

서블릿 객체는 마치 '싱글톤'처럼 한번만 생성된다!

초기화 파라미터 참조 2 - ppt 4장

  • getInitParameter로 초기화 파라미터 값을 얻어 올때는 반드시 '소속'을 밝혀서 값을 얻어와야 한다.
  • 초기화파라미터 값을 바로 얻어오는 것이 아닌,
log.info(getInitParameter("name1"));
  • 아래처럼 this.getInitParameter로 '소속'을 밝혀서 값을 얻어와야 한다.
log.info(this.getInitParameter("name1"));

2. ServletContext API

  • 컨텍스트 파라미터 참조
  • 모든 서블릿과 모든 JSP에서 공유할 수 있는 것이 바로 컨텍스트 파라미터
  • web.xml 에서 컨텍스트 파라미터 등록
  • 반드시 servlet 태그 전에 등록 해야 함!!
  <context-param>
    <param-name>name1</param-name>
    <param-value>value1</param-value>
  </context-param>
  <context-param>
    <param-name>name2</param-name>
    <param-value>value2</param-value>
  </context-param>
  • Servlet 내에서 ...
  • 컨텍스트 파라미터 얻기 --> 반드시 this 키워드로 '소속'을 밝히고 값을 얻어올 것!!
String name1 = this.getServletContext().getInitParameter("name1");
String name2 = this.getServletContext().getInitParameter("name2");

ServletContext 객체

  • ServletContext 객체 == 웹어플리케이션
  • ServletContext 의 생명주기는 WAS와 동일하며, WAS 서버(Tomcat)가 내려가기 전까지의 Life Cycle을 가진다.
  • 모든 서블릿이나 JSP에서 공유할 데이터는 ServletContext 객체이다.
  • ServletContext 내부에 공유데이터를 저장할 수 있는 공간이 존재. -> 이 공간을 'Application scope' 라고 한다.

- Servlet Container는 공유데이터를 저장할 공유영역(Shared Scope) 4가지를. 제공한다.

1) Application Scope
- 가. ServletContext 객체가 관리한다고 표현
- 나. WAS의 생명주기와 같다 (가장 긴 수명을 가짐)

2) Session Scope
- 가. 웹개발시, 가장 많이 사용하는 공유영역
- 나. HttpSession 객체가 관리한다고 표현
- 다. 웹브라우저와 생명주기가 같다
- 라. 대부분의 웹서비스는, 로그인정보 / 장바구니정보 등을 여기에 저장해서 공유

3) Request Scope
- 가. 웹개발시, 가장많이 사용하는 또 하나의 공유 영역
- 나. HttpServletRequest 객체가 관리한다고 표현
- 다. 하나의 Request에 대해서, Response 문서가 웹브라우저로 전송되면, 바로 사라지는 영역

4) Page Scope
- 가. JSP에서 제공되는 공유영역
- 나. XXX.jsp 파일이, 처음부터 ~ 끝까지 수행되고나면 파괴되는 공유영역

- 위의 각 공유영역에 속성(Attribute)을 넣고 빼고 삭제하는 메소드는 아래와 같습니다.

공유영역의 속성값을 넣기
- 1) setAttribute(name, value) : 공유영역에 속성바인딩

공유영역에 들어 있는 속성값을 불러오기
- 2) getAttribute(name) : 바인딩 속성값 얻기

공유영역에 들어 있는 속성값 제거
- (3) removeAttribute(name) : 공유영역의 속성언바인딩



0개의 댓글