Servlet vs JSP

한강섭·2025년 3월 29일
0
post-thumbnail

서블릿(Servlet)

클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술


특징

장점

java의 OOP 기반으로 작성: 유지보수성 및 재활용성 우수하며 플랫폼 독립적

높은 성능과 확장성: 하나의 서블릿 객체만 생성하며 멀티 스레딩을 지원하여 요청의 동시 처리가 가능

확장성: 필터를 통한 공통 모듈의 전/후 처리, 리스너를 이용한 이벤트 기반 처리 가능 및 스프링 등 다양한 프레임워크와 통합 용이

단점

business logic과 presentation logic(HTML code)가 섞여서 나타남
여기서 JSP가 등장! 함께 작동하는 Model2 방식 처리!

HTML 변경 시 Servlet을 재컴파일해야 함


URL 매핑

@WebServlet(urlPatterns = "/hello")

/로 시작해서 경로 지정 ex /hello/hi, /hello/there
확장자 매칭은 경로 지정과 함께 사용 불가! ex) hello.do


주요 Servlet 객체

HttpServlet 라이프 사이클

에러 코드


JSP (Jakarta Server Pages)

HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구

JSP가 실행되면 자바 Servlet으로 변환되어 웹 어플리케이션 서버에서 동작된다!


JSP 구성요소

directive // JSP 페이지의 속성 지정 <%@ %>

script-let // 자바 코드 기술 <% %>
expression // 계산식, 함수 호출 결과 <%= %>
declaration // 변수 및 메서스 선언 <%! %>
comment // JSP 페이지 내의 설명 <%-- --%>

JSTL // 커스텀 태그 중 자주 사용되는 것을 표준화 (JSP Standard Tag Library)


JSP 내장 객체와 메서드

request // 클라이언트 요청 정보
response // 서버의 응답 정보
out // 클라이언트로의 정보 출력 스트림
session // HTTP 세션에 대한 정보
application // 웹 애플리케이션에 대한 정보
pageContext // 현재 JSP 페이지에 대한 정보
exception // isErrorPage=true인 경우 사용되는 예외 객체
config // JSP 페이지에 대한 설정 정보 저장

추가적인 속성 저장을 위한 웹의 영역(scope)
page - request - session - application


정리

Servlet 은 자바를 사용하여 웹을 만들기 위해 필요한 기술이다! 그런데 html을 자바 코드에 넣고 쓰기 힘들어 같이 사용하는 것이 JSP 이다!


참고자료

JSP, 아직도 사용하는 이유는? (Feat. 사용 가이드)
[JSP] 서블릿(Servlet)이란?
Servlet & JSP (2)

profile
기록하고 공유하는 개발자

0개의 댓글