javax.servlet.Servlet
인터페이스를 구현해야 함Servlet 인터페이스
임구분 | 설명 |
---|---|
init() | 서블릿 컨테이너가 서블릿을 생성한 후 초기화 작업을 수행하기 위해 호출하는 메서드 |
service() | 실질적으로 서비스 작업을 수행하는 메서드 |
destroy() | 서블릿 컨테이너가 종료되거나 웹 애플리케이션이 멈출 때, 또는 해당 서블릿을 비활성화 시킬 때 호출하는 메서드 ex) 자원의 해제, 데이터 저장, 마무리 작업 |
구분 | 설명 |
---|---|
getServletConfig() | 서블릿 설정 정보를 다루는 ServletConfig 객체를 반환 ex) 서블릿 이름, 서블릿 초기 매개변수 값, 서블릿 환경정보 |
getServletInfo() | 서블릿을 작성한 사람에 대한 정보 ex) 서블릿 버전, 권리 |
<servlet>
<servlet-name>ServletName</servlet-name>
<servlet-class>test.servlets.ServletClass</servlet-class>
</servlet>
QName
- 패키지명 + 클래스명 = Fully qualified name = QName
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
<servlet-mapping>
servlet-mapping
: 서블릿과 URL을 매핑할 때 사용함servlet-name
: servlet 태그에서 정의한 서블릿 별명url-pattern
: 서블릿을 요청할 때 클라이언트가 사용할 URL을 설정. "/"는 컨텍스트 루트
1. 클라이언트의 요청이 들어오면 서블릿 컨테이너는 서블릿을 찾음
2. 서블릿이 없다면, 서블릿 클래스를 로딩
하고 인스턴스를 준비한 후 생성자를 호출
함. 그리고 초기화 메서드인 init()를 호출
함
3. 클라이언트 요청을 처리하는 service() 메서드를 호출
함. 클라이언트의 요청에 대해 서비스를 제공함
4. service() 메서드에서 만든 결과를 HTTP 프로토콜에 맞추어 클라이언트에 응답하고 요청처리를 완료
함
5. 서블릿 컨테이너를 종료
하거나 웹 애플리케이션을 종료
하는 경우
6. 서블릿 컨테이너는 종료되기 전에 서블릿이 마무리 작업을 수행
할 수 있도록 생성된 모든 서블릿에 대해 destroy() 메서드를 호출
함
Reference
잘 봤습니다.
내용 중 서블릿 구동방식 표에서 (6) service() -> destroy()로 수정되어야 할 것 같습니다.