[스프링부트] 서블릿 Servlet
에러 같은데 간간히 보이는 서블릿?이란게 있어서 뭔지 모르겠어서 작성한다.
간단히 말해 서블릿은 그냥 우리는 데이터베이스에 저장을 하고 싶을 뿐인데 ..
서버는 클라이언트가 요청을 하는 순간 HTTP 메세지를 보고 다 풀어헤쳐야 함. 파싱을 해서 Post 인지,,,뭔지,,,
Header 생성하고 ... 응답메세지도 만들어줘야하고 어쩌고 저쩌고를 매번 해야한다고?
그건 너무 비효율 적이니깐 WAS인 서블릿이 그걸 자동으로 해줌! 한마디로 개발자가 HTTP 스펙을 편리하게 사용할 수 있게끔 해준다.
우리는 이제 그냥 Response 객체 안에 원하는걸 넣어주면 된다.
<약간 자세히>
HTTP요청 시 request response 객체를 새로 만들어서 서블릿 객체 호출한다.
개발자는 Request객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용
개발자는 Response 객체에서 HTTP 응답 정보를 편리하게 입력
WAS 는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보를 생성
이때 이 객체는 톰캣 같은 서블릿 컨테이너로 가게 되는데 이런 서블릿 컨테이너는 보내준 객체들을 자동으로 생성,호출, 관리 해준다.
- 서블릿 객체는 싱글톤으로 관리된다.
- 객체를 하나만 생성하고 공유해서 사용.
- 공유 변수 사용 주의 ( 싱글톤이니깐)
- 동시 요청을 위한 멀티 스레드 처리 지원
Spring boot와 Servlet
spring boot는 내부적으로 내장 톰캣을 가지고 있다. 즉 스프링 부트가 실행되면서 내부적으로 내장톰캣 즉 서블릿 컨테이너가 실행된다. 스프링 부트에서 사용자 정의 프로그램을 구현한 프로그램인 서블릿은 DispatchServlet이다. 스프링부트에서 DispatchServlet이 FrontController 역할을 한다.
참고 : https://12bme.tistory.com/555 [길은 가면, 뒤에 있다.:티스토리], 김영한 스프링 MVC 1편,Wan blog (tistory.com)