2021-07-05 강의록_서블릿 Context param

MIN.DI·2021년 7월 5일
0

강의록

목록 보기
27/54

서블릿 초기화 접근은 서블릿config 객체 필요했듯이
우리가 공유가능한 모든 초기화파라미터를 접근하려면 서블릿context객체가 필요하다

context param 은 공유되는 영역이 web application 전역에 대해 공유됨.
서블릿 내에서는 init param.

ServletContext객체 == 웹 어플리케이션
서블릿 컨텍스트 객체의 생명주기 = 웹 어플리케이션 생명주기와 같다. (정확히 같은건 아니지만 거의 같음) (WAS가 올라갈때 생성돼서 내려갈때 죽음)

contextParam이 공유데이터로서 우리가 만든 웹어플리케이션에 들어있는 모든 서블릿에 공유되는 데이터이듯이
우리가 웹 개발하다보면 모든 서블릿, jsp에서 공유할 데이터를 보관하는 장소 역시 Servlet context객체이다.

로그인할때 아이디, 암호 넣고 로그인 성공했다고 했을때
로그인을 정상적으로 했다는 정보를 어딘가 메모리에 저장해놔야 하는데,(로그아웃 전까지)
이 메모리 영역이 바로 이 servlet context가 제공하는 메모리영역이다.
즉, 이 안에 저장소가 있다는 뜻이고, 이 저장소를 application scope(=was와 생명주기가 동일한 servlet context객체의 저장공간)라고 한다.

Servlet Context는 웹 어플리케이션(context)마다 하나씩 생성되는 객체로, 다수의 jsp, 서블릿에서 공유해서 사용할 수 있다.

Servlet Container는 공유데이터를 저장할 공유영역(Shared Scope) 4가지를 제공.
속성 바인딩, 언바인딩?

  1. Application Scope
    : 웹 어플리케이션의 lifecycle과 동일한 socpe. was가 존재하는 동안 모든 서블릿 jsp가 접근 가능.
    ServletContext객체가 관리한다고 표현.
    WAS와 생명주기가 같다. (가장 긴 수명을 가짐)

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

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

  4. Page Scope
    : JSP에서만 제공되는 공유영역.
    XXX.jsp 파일이 처음부터 끝까지 수행되고 나면 파괴되는 공유영역으로, 가장 짧은 생명을 가짐. (거의 사용하지 않음)

위의 각 공유영역에 속성을 넣고, 빼고, 삭제하는 메소드는 아래와 같다.

  1. setAttribute(name, value) : 공유영역에 속성바인딩
  2. getAttribute(name) : 바인딩 속성값 얻기
  3. removeAttribute(name) : 공유영역의 속성언바인딩
profile
내가 보려고 쓰는 블로그

0개의 댓글

관련 채용 정보