We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Originally posted by bunsung92 April 21, 2023
언젠간 다뤄야 했던, 미루고 미뤘던 숙원의 서블릿의 라이프사이클을 다루게 되었다. 스프링에 앞서 해당 주제를 미리 정리 해 보도록 하겠다.
Servlet
요청-응답
일반적으로 응용 프로그램의 경우 Java 서블릿 기술은 HTTP 관련 서블릿 클래스를 정의한다.
javax.servlet
javax.servlet.http
하지만 인터페이스는 모든 메서드를 정의 해 줘야한다. 이는 개발자 입장에서 피곤할 수 있다. 피로를 덜어주고자 이미 GenericServlet 이라는 추상 클래스에서 service()를 제외한 메서드들을 관리하고 있다.
GenericServlet
service()
우리가 이용할 HttpServlet은 이미 GenericServlet을 확장한 클래스이다. 즉 서블릿의 라이프 사이클 관리가 조금은 수월 해진다. 그리고 해당 클래스는 doGet() 과 doPost() 메서드를 통해 여러 HTTP 관련 처리 서비스를 제공한다.
HttpServlet
doGet()
doPost()
컨테이너
요청
존재하지 않는 경우
웹 컨테이너
init()
요청 및 응답 개체
서비스 메서드
destroy()
라이프사이클에 커스텀이 필요하다면, 직접 핸들링을 해줄 수 있다.
@WebListener
A Servlet Exception Has Occurred
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Discussed in https://github.com/orgs/cs-collections/discussions/150
Originally posted by bunsung92 April 21, 2023
Servlet Lifecycle
언젠간 다뤄야 했던, 미루고 미뤘던 숙원의 서블릿의 라이프사이클을 다루게 되었다.
스프링에 앞서 해당 주제를 미리 정리 해 보도록 하겠다.
1. What is
Servlet
?요청-응답
프로그래밍 모델을 통해 액세스되는 애플리케이션을 호스트하는 서버의 기능을 확장하는데 사용되는 Java 프로그래밍 언어 클래스이다.2. General Use
Servlet
javax.servlet
과javax.servlet.http
패키지에서 서블릿 이용을 위한 인터페이스와 클래스를 제공한다.우리가 이용할
HttpServlet
은 이미GenericServlet
을 확장한 클래스이다.즉 서블릿의 라이프 사이클 관리가 조금은 수월 해진다.
그리고 해당 클래스는
doGet()
과doPost()
메서드를 통해 여러 HTTP 관련 처리 서비스를 제공한다.3. Servlet Lifecycle
컨테이너
에 의해 제어된다.요청
이 들어오면컨테이너
는 아래의 과정을 거친다.존재하지 않는 경우
a.
웹 컨테이너
는 서블릿 클래스를 로드한다.b. 서블릿 클래스의 인스턴스를 만든다.
c.
init()
을 호출하여 서블릿 인스턴스를 초기화한다.요청 및 응답 개체
를 전달하여서비스 메서드
를 호출한다.컨테이너
는 서블릿의destroy()
메서드를 호출하여 서블릿을 해제한다.라이프사이클에 커스텀이 필요하다면, 직접 핸들링을 해줄 수 있다.
4. Handling Servlet Lifecycle Events
@WebListener
을 이용해 특정 웹 애플리케이션 컨텍스트에서 다양한 작업에 대한 이벤트 Listener 클래스를 정의 하면 된다.5. Handiling Servlet Errors
The text was updated successfully, but these errors were encountered: