[JSP] JSP & Servlet

김태희·2025년 7월 9일
0

JSP

목록 보기
3/6
post-thumbnail

JSP와 Servlet, 무엇이 다를까 ?

Java로 웹 개발을 시작하면 가장 먼저 JSP(JavaServer Pages)서블릿(Servlet)을 만나게 된다.

서블릿 (Servlet)
서블릿은 순수 자바(Java) 코드이다.
서블릿은 사용자의 요청을 처리하고, 비즈니스 로직을 실행하며, 데이터를 제어하는 역할을 수행한다.

JSP (JavaServer Pages)
JSP는 HTML 코드 안에 자바 코드를 삽입하여 사용한다.
JSP는 사용자에게 최종적으로 보여질 화면의 구조와 내용을 담는다.


서블릿의 한계

초기 웹 개발에서는 서블릿만으로 모든 것을 처리했다.

out.println("<html><body><h1>안녕하세요</h1></body></html>");

위의 코드처럼 자바만을 이용해 한 줄 한 줄 HTML을 문자열로 출력하는 것은 비효율적이었다.

디자인을 조금만 변경해도 자바 코드를 다시 컴파일해야 하는 번거로움도 있었다.

이처럼 서블릿은 로직 처리에는 강력하지만, 화면을 구성하는 표현(Presentation)에는 매우 취약한 구조를 가졌다.


JSP : HTML 문서에 자바를 심다

이러한 불편을 해결하기 위해 JSP가 등장했다.

JSP는 반대로 HTML을 기본 구조로 삼고, 필요한 부분에만 자바 코드를 넣어 동적으로 데이터를 처리할 수 있도록 했다.

이로써 디자이너는 자바를 몰라도 HTML 구조를 쉽게 수정하고, 개발자는 필요한 부분에만 로직을 추가하는 역할 분담이 가능해졌다.


MVC 패턴

MVC 패턴 및 JSP 프로젝트 구조

결론적으로 현대 웹 개발은 이 둘을 함께 사용하는 MVC(Model-View-Controller) 패턴으로 정착되었다.

Controller(컨트롤러) : 서블릿
사용자의 모든 요청을 가장 먼저 받는다.
필요한 비즈니스 로직을 처리하고 데이터를 가공한다.
그 결과를 어떤 JSP에게 보여줄지 결정하여 전달한다.

View(뷰) : JSP
컨트롤러(서블릿)로부터 전달받은 데이터를 화면에 그리는 역할에만 집중한다.

Model(모델)
데이터 그 자체나 데이터를 처리하는 자바 클래스(JavaBean, DTO, DAO 등)를 의미한다.

흐름
사용자 요청 → 서블릿이 받아서 처리
→ 결과를 JSP에 전달
→ JSP가 화면을 그려서 사용자에게 응답

JSP 핵심 문법 요약

구분문법설명예시
지시어 (Directive)<%@ ... %>페이지 전체에 대한 설정 (인코딩, import 등)<%@ page contentType="text/html;charset=UTF-8" %>
선언문 (Declaration)<%! ... %>멤버 변수나 메서드를 선언<%! int count = 0; %>
스크립틀릿 (Scriptlet)<% ... %>자바 로직 코드를 작성 (가장 많이 사용)<% for(int i=0; i<5; i++) { ... } %>
표현식 (Expression)<%= ... %>변수 값이나 메서드 리턴 값을 출력 (; 사용 안 함)안녕하세요, <%= name %>님!
주석 (Comment)<%-- ... --%>JSP 주석 (HTML 소스 보기에도 나타나지 않음)<%-- 이 부분은 클라이언트에게 보이지 않는다. --%>

0개의 댓글