728x90
HttpServlet
- HttpSerlvet은 GET/POST 등에 맞게 doGet(), doPost() 등을 제공하므로, 개발자들은 본인에게 필요한 메소드를 오버라이드하는 것만으로 GET/POST 방식 처리를 나누어서 처리할 수 있다.
- HttpServlet을 상속받은 클래스 객체는 톰캣과 같은 WAS의 내부에서 자동으로 객체를 생성하고 관리하기 때문에 개발자가 객체 관리에 신결 쓸 필요가 없다.
- HttpServlet은 멀티 스레드에 의해서 동시에 실행될 수 있도록 처리되기 때문에 개발자는 동시에 많은 사용자를 어떻게 처리해야 하는지에 대한 고민을 줄일 수 있다.
HttoServlet은 상위 클래스로 GenericServlet이라는 추상 클래스를 상속한다. GenericServlet과 HttpSerlvet의 가장 큰 차이는 GenericServlet의 경우 HTTP 프로토콜에 특화되지 않는 요청과 응답에 대한 기능을 정의하고 있다.
HttpServlet 서블릿 클래스의 과정
- 브라우저가 톰캣에 서블릿이 처리해야 하는 특정한 경로를 호출한다. (경로에 맞게 하나만 생성)
- 톰캣은 해당 경로에 맞는 서블릿 클래스를 로딩하고 객체를 생성한다. 이 과정에서 init()라는 이름의 메소드를 실행해서 서블릿 객체가 동작하기 전에 수행해야 하는 일들을 처리할 수 있다.
- 생성된 서블릿 객체는 브라우저의 요청에 대한 정보를 분석해서 GET/POST 등의 정보와 함께 같이 전달되는 파라미터들을 HttpSerlvetRequest라는 타입의 파라미터로 전달 받는다. 이 과정에서 응답을 처리하는 데 필요한 기능들은 HttpSerlvetResponse라는 타입의 객체로 전달 받는다.
- 서블릿 내부에서는 GET/POST에 맞게 doGet()/doPost() 등의 메소드를 자동으로 실행한다. 이 후 동일한 주소의 호출이 있을 때 서블릿은 동일한 객체 하나만을 이용해서 이를 처리한다.
- 톰캣이 종료될 때는 서블릿의 destroy()라는 메소드를 실행한다.
*init()의 내용은 아래 참고 부탁드립니당 https://steady-developer-hyemin.tistory.com/39
728x90
'Backend > Spring' 카테고리의 다른 글
[Spring] 스프링 시큐리티란 ? / 시큐리티 기본 설정 / 예시 (0) | 2023.12.11 |
---|---|
[Spring] HttpServletRequest , HttpServletResponse란? / 주요 기능과 자주 사용하는 메서드 (0) | 2023.12.11 |
[Spring] PRG 패턴 / 와이어프레임 (0) | 2023.12.11 |
[Spring] Web MVC 방식 (0) | 2023.12.10 |
[Spring] Web 기본 동작 방식 (0) | 2023.12.10 |