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()로 수정되어야 할 것 같습니다.