개발공부 일지
학원수업_39day [HTML,CSS,JSP,Servlet(6day) - ServletConfig, Servletcontext] 본문
학원수업_39day [HTML,CSS,JSP,Servlet(6day) - ServletConfig, Servletcontext]
짜몽- 2022. 9. 26. 17:2539일차는 원래 모두 정리를 했었는데......다 날라가버려서.....
내용이 많이 없다......덧붙여야하는 내용만 그때그때 마다 넣는중 이다.....ㅠ크흡...
우리는 Servlet 하위의 구현체를 만든다
ServletLifeCycle
*Servlet Life Cycle (Servlet 생명주기) *
실행전 int -> 응답하는 서비스 service -> 종료 할 때 destory : 이 세가지 라이프 사이클 메서드를 WAS ( Web Container ) 가 호출하여 실행된다

init() : 객체 생성 후 서블릿 초기화 작업을 위해 한번 실행
service() : client 요청시마다 실행, 요청에 응답을 매번 수행한다
destroy() : 서비스 해제 직전에 한번 실행
ex ) 5명의 클라이언트가 동일한 서블릿에 요청한 상태 라면?
init() : 1번
service() : 5번
destroy() : 0번 -> 서비스 종료 전에 한번 실행
Servlet 은 객체화 생성 후, 초기화 작업을 거친 후 요청을 처리하는 생명주기를 갖고 있다.
1. 요청이 오면 Servlet 클래스가 로딩되어 요청에 대한 Servlet 객체가 생성 된다.
2. 서버는 init() 메소드를 호출해서 Servlet을 초기화 한다.
3. service() 메소드를 호출해서 Servlet이 브라우저의 요청을 처리하도록 한다.
4. service() 메소드는 특정 HTTP 요청 ( get,post 등) 을 처리하는 메서드 (doGet(),doPost() 등) 를 호출 한다.
5. 서버는 destroy() 메소드를 호출하여 Servlet를 제거 한다.
load on startup
: web application 시작시 해당 서블릿 로딩 ( 첫손님이 바보되지않게 하는 것 )
WAS 시작 시에 미리 서블릿을 초기화 시킨다.

- Servlet LifeCycle 특성상 클라이언트의 첫번째 요청시 서블릿객체생성, init () 실행 후
service 계열 메서드가 실행되어 클라이언트에게 응답된다
첫번째 클라이언트의 요청에 대해서 응답이 느려질 경우를 대비해
WAS 시작 시점에 지정한 서블릿의 객체 생성과 init 즉 초기화 작업을 미리 수행하도록
XML : web.xml 또는 Annotation: @WebServlet 에서 load on startup 옵션을 지정할 수 있다
- ServletConfig 와 ServletContext
ServletConfig : 서블릿 설정정보 객체
서블릿 당 하나 생성됨
웹컨테이너(or Servlet Container)가 init(ServletConfig config) 을 실행할 때
ServletConfig interface 타입의 구현체를 해당 서블릿으로 전달한다
ServletConfig 객체는 해당 서블릿이 실행되는 데 필요한 설정 정보와
ServletContext 객체의 주소값을 가지고 있다
ex) 서블릿은 사원 , ServletConfig 는 사원증
ServletContext :
웹어플리케이션 내의 모든 자바웹프로그램(Servlet, JSP) 들이 공유하는 환경 정보
웹 어플리케이션 당 하나 생성
WAS 가 웹 어플리케이션을 처음 시작할 때 ServletContext 객체가 생성되고
종료하기 직점에 ServletContext 객체가 소멸된다
ex) 웹어플리케이션 : 회사
ServletContext : 사내 인트라넷

특징
- javax.sevlet.ServletContext로 정의되어 있음
- 서블릿과 서블릿 컨테이너 간 연동을 위해 사용
- 웹 컨텍스트(웹 어플리케이션)마다 하나의 ServletContext r가 생성
- 서블릿끼리 자원(데이터)를 공유하는데 사용
- 서블릿 컨테이너 실행시 생성, 컨터이너 종료 시 소멸
- SevletContext 객체는 web.xml 파일에서 환경설정 정보를 가져오는데 사용 가능
- web.xml 파일로부터 속성을 가져오는데 설정,제거하는데 사용가능

ServletContext의 메소드
| 메소드 | 설명 |
| public String getInintParameter(String name) | 파라미터 name에 대한 파라미터 값 반환 |
| public Enumeration getInitParameterNames() | 컨텍스트의 초기화 파라미터의 name 값들을 String 객체의 Enumeration으로 반환 |
| pulbic void setAttribute(String name) | 애플리케이션 범위에 주어진 객체 설정 |
| public Object getAttribute(String name) | 명시된 name에 대한 Object 반환 |
| public void removeAttribute(String name) | 서블릿 컨텍스트로부터 주어진 name에 대한 속성 제거 |
ServletContextListener : Application LifeCycle Listener
- 웹어플리케이션 시작 시점과 종료 시점의 이벤트를 감지하여
시작시점에 필요한 초기화 작업과
종료시점에 필요한 작업을 정의해 실행 시킬 수 있다
ServletContextListener Interface 의 abstract method
contextInitialized() : 웹어플리케이션 시작 시점에 호출되는 메서드
contextDestroyed() : 웹어플리케이션 종료 직전에 호출되는 메서드
<init-param>
<param name
Servlet Config가 갖고 있는 정보
'학원수업 > Web(HMTL,CSS,JSP,Servlet)' 카테고리의 다른 글
| 학원수업_41day [HTML,CSS,JSP,Servlet(8day) - JSP] (0) | 2022.09.28 |
|---|---|
| 학원수업_40day [HTML,CSS,JSP,Servlet(7day) - Cookie / Session] (0) | 2022.09.27 |
| 학원수업_38day [HTML,CSS,JSP,Servlet(5day) - web ] (0) | 2022.09.23 |
| 학원수업_37day [HTML,CSS,JSP,Servlet(4day) - web ] (0) | 2022.09.23 |
| 학원수업_36day [HTML,CSS,Javascript (3day) - web 구동원리 ] (0) | 2022.09.22 |