본문 바로가기
IT/Java

Servlet 이란? (JSP 와 비교)

by 성준하이 2024. 1. 17.
반응형

자바 서블릿(Java Servlet)은 

자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다.

 

라고 위키에 등록이 되어있다.

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

 

자바 서블릿 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 서블릿은 여기로 연결됩니다. 다른 뜻에 대해서는 서블렛 문서를 참고하십시오. JSP 파일의 수명. 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으

ko.wikipedia.org

https://www.baeldung.com/intro-to-servlets

 

좀더 쉽게 풀어보면

웹페이지를 만들때 사용되는 자바 기반 웹 애플리케이션 프로그래밍 기술이다.

 

주요 특징은 아래와 같다.

  • 클라이언트의 Request에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
  • 기존의 정적 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공
  • JAVA의 스레드를 이용하여 동작
  • MVC패턴에서 컨트롤러로 이용됨
  • 컨테이너에서 실행
  • 보안 기능을 적용하기 쉬움

서블릿의 동작 과정은 아래 참고 포스팅을 참고 바란다.

 

Servlet 의 생명주기는 아래와 같다.

  • init()
    서블릿이 처음으로 요청될 때 초기화를 하는 메서드
    클래스를 new 해서 사용하듯 서블릿 클래스도 초기화해주어야 사용이 가능
  • service()
    서블릿 컨테이너가 요청을 받고 응답을 내려줄 때 필요한 서블릿의 service 메서드
    Servlet interface를 구현한 HttpServlet 클래스의 doGet, doPost 같은 메서드들이 호출
  • destroy()
    더 이상 사용되지 않는 서블릿 클래스는 주기적으로 서블릿 컨테이너가 destory() 메서드를 호출하여 제거
    이렇게 제거된 서블릿은 service 메서드들에 해당하는 모든 스레드들이 종료되거나 사용시간이 오래되어 타임아웃된 경우에는 이 클래스를 다시 사용하기 위해서는 init()을 다시 해야함

 

그럼 간단하게 JSP와 서블릿을 비교해보면

 

크게 보면 기능의 차이는 없고 역할이 조금 다르다.

Servlet - Java 코드 안에 HTML 코드 (하나의 클래스)
- data processing(Controller)에 좋다.
- 즉 DB와의 통신, Business Logic 호출, 데이터를 읽고 확인하는 작업 등에 유용하다.
- Servlet이 수정된 경우 Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이트하고 다시 컴파일한 후 재배포하는 작업이 필요하다. (개발 생산성 저하)
JSP - HTML 코드 안에 Java 코드
- presentation(View)에 좋다.
- 즉 요청 결과를 나타내는 HTML 작성하는데 유용하다.
- JSP가 수정된 경우 재배포할 필요가 없이 WAS가 알아서 처리한다. (쉬운 배포)

 


참고 포스팅

https://thenicesj.tistory.com/605

 

HttpServletRequest, HttpServletResponse에 대한 이해

was 에서 웹 브라우저로 요청을 받게 되면 아래 그림처럼 동작을 한다. 1. 요청 받는 정보를 HttpServletRequest객체를 생성하여 저장 2. 웹 브라우저에게 리턴할 HttpServletResponse객체를 생성(빈 객체) 3.

thenicesj.tistory.com

 

반응형

댓글