[TIL]서블릿이란?

신동하·2024년 5월 10일

Spring

목록 보기
3/3
post-thumbnail

서블릿(Servlet)

간단히 서술하면 자바 언어를 이용하여 웹을 만들기 위한 기술을 의미하고 좀 더 자세히 말해보자면 클라이언트의 요청을 받고 그에 대응되는 결과를 반환해주는 자바 프로그램을 서블릿이라고 말한다.

Ex) 클라이언트가 로그인을 하기 위해 아이디와 비밀번호를 입력을 하게 되면 서버는 해당 입력 값이 유효한지를 검사를 하고 유효이 여부에 따라 적합한 응답(페이지orAlert)를 반환한게 된다. -> 이러한 역할을 하는 것을 서블릿이라고 말한다.🙂

서블릿의 특징

  1. 클라이언트의 요청에 대해서 동적으로 처리하는 웹 애플리케이션 컴포넌트
  2. html을 이용하여 요청에 대한 결과를 반환해줌
  3. 자바 Thread를 이용하여 동작을 한다. -> 플랫폼에 독립적이며, 여러 ㅇ요청들을 동시에 처리가 가능하며 높은 보안성을 제공한다.
  4. MVC패턴에서 컨트롤러로 사용이 된다.
  5. 한번 Servlet 인스턴스가 생성이 되면 동일한 요청에 대해서 같은 인스턴스로 동작을 수행한다. -> 싱글톤 패턴

서블릿의 동작 순서.


1. 클라이언트가 URL을 입력하고, HTTP request가 Servlet Container로 전송이 된다.
2. 요청을 받은 ServletContainer는 HttpServletRequest, HttpServletResponse객체를 생성을 한다.
HttpServletRequest:클라이언트가 입력한 데이터를 담는 객체를 의미함.
HttpServletResponse::입력에 대응되는 결과를 저장하는 객체를 의미.
3. web.xml을 이용하여 입력(요청한 URL)이 대응되는 서블릿이 무엇인지 탐색을 한다.
4. 탐색이 된 서블릿은 service 메소드를 실행하고 클라이언트의 Get, Post의 여부에 따라서 doGet(), doPost()를 호출한다.->만약 해당이 되는서블릿의 클래스가 컨테이너에 로딩되지 않았으면, init()을 통해 새로운 서블릿이 초기화 된다. 이후 과정은 똑같이 동작한다.🙂
5. doGet(), doPost()는 동적 페이지를 생성을 하고 HttpSelverResponse 응답을 반환한다.
6. 작업이 완료되면 작성된 HttpServleResonse, HttpServletResonse 객체는 소멸된다.

참고: 정적 페이지와 동적 페이지
정적 페이지: 사진과 단순한 텍스트와 같이 클라이언트와 상호작용과는 관계 없이 늘 똑같은 형식으로 표현되는 페이지를 의미한다.
동적 페이지: 클라이언트와의 상호작용에 의해 반환 값이 변화되는 페이지를 의미함-> 로그인 페이지, 쇼핑몰 메인, 장바구니 페이지 등 현재 대부분의 웹 페이지들을 의미함.

참고한 사이트🙏

https://devpoong.tistory.com/44
https://mangkyu.tistory.com/14

profile
JAVA를 자바💥😊😀

0개의 댓글