땡글이LAB

[자바 서블릿] 본문

Framework & Library/Spring & SpringBoot

[자바 서블릿]

땡글이B 2022. 2. 14. 16:21

 자바 서블릿(Java Servlet)자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다.

 

서블릿은 JSP와 비슷한 점이 있지만, JSP 가 HTML 문서 안에 Java 코드를 포함하고 있는 반면, 서블릿은 자바 코드 안에 HTML을 포함하고 있다는 차이점이 있다.

 

톰캣처럼 서블릿을 지원하는 WAS 를 서블릿 컨테이너라고 한다.

서블릿의 주요 특징으로는, 

  • urlPatterns(/hello)의 url이 호출되면 서블릿 코드가 실행된다.  
  • HttpServletRequest 객체를 이용하면, HTTP 요청정보를 다룰 수 있다.
  • HttpServletResponse 객체를 이용하면, HTTP 응답정보를 다룰 수 있다.
  • 서블릿 객체는 싱글톤으로 관리된다.
    • 최초 로딩 시점에 서블릿 객체를 만들어두고 재활용함으로써 효율성을 높였다.
    • 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근할 수 있다. (따라서 공유변수 사용에 주의해야 한다)
  • 동시요청을 위한 멀티 쓰레드 처리도 지원해준다.

 

서블릿의 단점

서블릿의 단점으로는, 자바 코드에서 HTML 코드를 작성해야하다보니, 굉장히 불편하다. 그래서 발전된 것이 JSP와 Thymeleaf 이다. JSP는 HTML 코드에서 자바 코드를 사용하게 함으로써, HTML (View) 을 작성하는 데에 불편함이 없도록 하였지만, 이 또한 로직과 View 가 완전히 분리된 것이 아니라 다른 대체재가 필요했다.

 

 그렇게 스프링에서 가장 많이 사용되는 템플릿 엔진이 Thymeleaf 이다. Thymeleaf 는 내추럴 템플릿이라고 불린다. 이유는 Thymeleaf 는 JSP와 서블릿과는 달리 HTML 문서를 그대로 읽어오더라도 웹브라우저에서 HTML 문서를 읽어오는 중에 깨지지 않는다. 

 

 JSP나 서블릿을 이용하면 동적으로 HTML 파일을 바꿀 수 있지만 정적 HTML 파일을 읽어오는 데에는 한계가 있다. 그래서 최근에는 Thymeleaf가 가장 많이 쓰인다.

 

 

Reference 

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF

 

 

Comments