반응형
자바 서블릿(Java Servlet)은
자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다.
라고 위키에 등록이 되어있다.
https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF
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
반응형
'IT > Java' 카테고리의 다른 글
Java 에서 Http 통신 방식 3가지(RestTemplate, WebClient, OpenFeign) (9) | 2024.01.20 |
---|---|
JPA메서드 save 와 saveAll 비교 (11) | 2024.01.19 |
RequestEntity 란 (20) | 2024.01.13 |
LocalDateTime 요일 구하기 (28) | 2024.01.11 |
[JPA] @DynamicInsert, @DynamicUpdate 란? (18) | 2024.01.10 |
댓글