HeadCopter

서블릿(Servlet)이란 ? 본문

개발관련

서블릿(Servlet)이란 ?

JungMonkey 2022. 7. 22. 17:55

Servlet ?

- 웹 페이지를 동적으로 생성하는 서버측 프로그램을 뜻하고 이걸 Servlet이라 부른다. 

- 웹 브라우저가 서버에 요청을 하면 WAS에서 HttpRequest, HttpResponse 객체가 생성해준다.

  WAS 에서 해당 요청을 수행하는 서블릿을 매핑하고 서블릿은 해당 요청을 수행하고 난 후 

 생성된 HttpResponse 객체에 응답 메시지를 담아 웹 브라우저에 보내주고 서블릿은 종료된다.

- 이렇게 서블릿은 개발자가 HTTP 요청 메시지를 직접 하나씩 파싱해서 읽지 않고 오직 비즈니스 로직에만

 집중할 수 있도록 도와주는 고마운 녀석이다.

웹 브라우저에서 /request-parma 으로 요청을 보내면 해당 서블릿에 매핑하여 메서드를 실행한다.

 *@WebServlet : 기존 xml에서 하는 서블릿 매핑 방법처럼 태그(<>)를 생성하고 매핑을 해주는것은 굉장히 번거로운 일이  다.  그래서 Java 에서는 @WebServlet이라는 애노테이션을 제공하여 간단하게 경로만 입력하면 해당 서블릿을 매핑하여 실행해준다. 

*@Override : 부모로 부터 상속받은 메서드를 재정의 할 때 메서드명과 매개변수를 틀리지 않게 쓰기 위한 애노테이션이다.

 

- 이렇게 서블릿은 HTTP 요청/응답 정보를 HttpServletRequest, HttpServletResponse 를 통해 편리하게 HTTP 스펙을 사  용할 수 있게 도와준다.

 

서블릿 HTTP 요청, 응답 흐름 과정

서블릿 컨테이너 ? 

- WAS에 포함되어 있는 서블릿 컨테이너의 역할은 서블릿 객체를 서블릿 컨테이너가 자동으로 생성,호출,관리 등 생명주기를 관리해준다.

- 서블릿 객체는 싱글톤으로 관리한다. (싱글톤이란 객체를 하나만 생성해서 다른곳에서도 공유하면서 쓰는 디자인 패턴을말한다. )

- 동시 요청을 위한 멀티 쓰레드 처리도 지원한다. 개발자가 따로 신경 이 부분에 신경쓰지 않아도 서블릿 컨테이너가 멀티 쓰레드에 대한 지원을 해주기 때문에 개발자가 편리하게 로직에만 집중할 수 있게 해준다.

 

 

 

 

 

 

 

 

공부를 마치며....

요즘 이력서 쓰고 기업에 지원하고 강의 듣고 깃허브에 코딩한거 올리느라 정신이 없다 

하지만 정신이 없는만큼 공부를 하면서 블로그에 쓸 내용이 많다고 생각이 되는건 

내가 지금 제대로 공부하고 있다는 뜻이라 생각된다.

앞으로도 공부를 하면서 시간이 지날수록 지식이 쌓이지만 쌓인 지식만큼 걱정도 그만큼 쌓여서 

여러가지 감정이 들지만 , 그래도 열심히 하다보면 반드시 좋은 결과가 있으리라 생각된다.

 

'개발관련' 카테고리의 다른 글

MVC 패턴 정리1  (0) 2022.07.27
본격! HTTP(2)  (0) 2022.07.14
본격 ! HTTP(1)  (0) 2022.07.13
클라이언트 서버 구조  (0) 2022.07.13
URI, URL, URN 정리와 웹 브라우저 요청 흐름 !  (0) 2022.07.12