서블릿

bo04·2022년 5월 31일
0

spring-mvc1

목록 보기
2/9

만약 서버를 직접 만들어야된다면 어떻게 될까..

저 클라이언트가 보낸 http 메시지를 하나하나 다 문자열을 나눠서 post인지 get인지/save인지 /delete인지 판단하고 host는 뭔지 ...디비에 저장하고...response 메시지부터...너무 복잡해! ->서블릿 등장!

서블릿

위의 그림에서 의미있는 로직인 녹색 박스를 제외한 모든 부분을 다 알아서 처리해줌. 서블릿을 지원해주는 대표적인 서버가 WAS(web application server)

코드


HttpServlet을 상속받은 코드로 /hello url로 요청이 오면 서블릿으로 처리하겠다는 코드임. request,response를 쉽게 처리할 수 있는 service메소드가 이미 만들어져있기 때문에 해당 메소드를 오버라이드해서 사용하면 됨

구조


was=web server 역할+서블릿 컨테이너

  1. was가 request,response 객체를 새로 만들어서 서블릿 객체를 호출함
  2. 개발자는 was에서 서블릿 컨테이너의 request으로 전달된 request 정보를 받아서 사용할 수 있고 서블릿 컨테이너의 response에 응답 결과를 입력할 수 있음.
  3. was는 서블릿 컨테이너의 response 메시지를 참고해 was안을 뒤져서 해당 response에 맞는 화면을 클라이언트에게 전달

서블릿 컨테이너는 뭐야?

서버에 만들어진 서블릿이 스스로 작동하는 것이 아니라 서블릿을 관리해주는 것이 필요한데 이게 서블릿 컨테이너임.
위에서 만들어진 helloServlet도 서블릿 컨테이너라고 할 수 있음.

  • 서블릿 컨테이너는 서블릿 객체를 생성,호출,종료 등의 생명주기를 관리해줌.
  • 서블릿 객체는 싱글톤으로 관리됨
  • jsp를 서블릿으로 변환해서 사용함
  • 동시 요청을 위한 멀티 쓰레드도 지원됨

참고

0개의 댓글