상세 컨텐츠

본문 제목

[Spring] HttpServlet 란? / HttpServlet 과정

Backend/Spring

by hyeminyy 2023. 12. 11. 21:07

본문

728x90

HttpServlet

 

 - HttpSerlvet은 GET/POST 등에 맞게 doGet(), doPost() 등을 제공하므로, 개발자들은 본인에게 필요한 메소드를 오버라이드하는 것만으로 GET/POST 방식 처리를 나누어서 처리할 수 있다.

 - HttpServlet을 상속받은 클래스 객체는 톰캣과 같은 WAS의 내부에서 자동으로 객체를 생성하고 관리하기 때문에 개발자가 객체 관리에 신결 쓸 필요가 없다.

 - HttpServlet은 멀티 스레드에 의해서 동시에 실행될 수 있도록 처리되기 때문에 개발자는 동시에 많은 사용자를 어떻게 처리해야 하는지에 대한 고민을 줄일 수 있다.

HttoServlet은 상위 클래스로 GenericServlet이라는 추상 클래스를 상속한다. GenericServlet과 HttpSerlvet의 가장 큰 차이는 GenericServlet의 경우 HTTP  프로토콜에 특화되지 않는 요청과 응답에 대한 기능을 정의하고 있다.

 

HttpServlet 서블릿 클래스의 과정

  1. 브라우저가 톰캣에 서블릿이 처리해야 하는 특정한 경로를 호출한다. (경로에 맞게 하나만 생성)
  2. 톰캣은 해당 경로에 맞는 서블릿 클래스를 로딩하고 객체를 생성한다. 이 과정에서 init()라는 이름의 메소드를 실행해서 서블릿 객체가 동작하기 전에 수행해야 하는 일들을 처리할 수 있다.
  3. 생성된 서블릿 객체는 브라우저의 요청에 대한 정보를 분석해서 GET/POST 등의 정보와 함께 같이 전달되는 파라미터들을 HttpSerlvetRequest라는 타입의 파라미터로 전달 받는다. 이 과정에서 응답을 처리하는 데 필요한 기능들은 HttpSerlvetResponse라는 타입의 객체로 전달 받는다.
  4. 서블릿 내부에서는 GET/POST에 맞게 doGet()/doPost() 등의 메소드를 자동으로 실행한다. 이 후 동일한 주소의 호출이 있을 때 서블릿은 동일한 객체 하나만을 이용해서 이를 처리한다. 
  5. 톰캣이 종료될 때는 서블릿의 destroy()라는 메소드를 실행한다.

*init()의 내용은 아래 참고 부탁드립니당 https://steady-developer-hyemin.tistory.com/39

 

[Servlet] Servlet 실행 방법 / @WebServlet

서블릿 실행 Servlet 파일을 담을 Package를 만들어보자. src 폴더에 마우스 오른쪽 버튼을 누르고 단축메뉴에서 [New] -> [Package]를 선택한다. package 이름은 co.kr.test ,보통 패키지 이름은 도메인으로 하

steady-developer-hyemin.tistory.com

 

 

728x90

관련글 더보기