JSP 최종 수정일 2026-06-19 01:53 조회수 9
대시보드

JSP

기본 정보

  • 이름: JSP (JavaServer Pages)
  • 분류: 서버 사이드 웹 기술
  • 개발사: Sun Microsystems (현재 Eclipse Foundation/Jakarta EE)
  • 최초 공개: 1999년
  • 실행 환경: Servlet Container (Tomcat 등)
  • 주요 용도: 동적 웹페이지 생성
  • 관련 주제: #JSP #Java #Servlet #백엔드 #웹개발

개요

JSP(JavaServer Pages)는 Java 기반의 서버 사이드 웹 기술로, HTML 문서 안에 Java 코드를 삽입하여 동적인 웹페이지를 생성할 수 있도록 설계되었다.

클라이언트가 JSP를 요청하면 웹 서버는 JSP를 Servlet으로 변환하고 컴파일한 후 실행하여 결과 HTML을 브라우저에 전달한다.

과거 Java 웹 개발의 표준 기술 중 하나였으며, 현재는 Spring Boot + Thymeleaf, React, Vue.js 등의 사용이 증가하면서 신규 프로젝트에서는 사용 비중이 감소하는 추세이다.


주요 특징

  • Java 기반
  • Servlet으로 변환 후 실행
  • HTML과 Java 코드 혼합 가능
  • MVC 패턴 적용 가능
  • EL(Expression Language) 지원
  • JSTL 지원
  • Tomcat 등 Servlet Container에서 실행

실행 구조

브라우저

↓

JSP 요청

↓

Tomcat

↓

Servlet 변환

↓

Java 컴파일

↓

실행

↓

HTML 생성

↓

브라우저 출력

기본 예제

<%@ page language="java" %>

<html>

<body>

<h1>Hello JSP</h1>

</body>

</html>

JSP 선언문

<%!

int count = 0;

%>

클래스의 멤버 변수나 메서드를 선언할 때 사용한다.


스크립틀릿

<%

String name = "구름";

out.println(name);

%>

Java 코드를 직접 작성할 수 있지만, 현재는 사용을 지양하는 것이 일반적이다.


표현식

<%= name %>

값을 화면에 출력할 때 사용한다.


EL(Expression Language)

${user.name}

${user.age}

객체의 값을 간결하게 출력할 수 있으며, 현대 JSP 개발에서는 EL 사용이 권장된다.


JSTL

<c:forEach items="${list}" var="item">

${item.name}

</c:forEach>

JSTL(JavaServer Pages Standard Tag Library)은 반복문과 조건문 등을 태그 형태로 제공한다.


Include

<%@ include file="header.jsp" %>

공통 레이아웃을 분리할 때 사용한다.


페이지 지시어

<%@ page

contentType="text/html;charset=UTF-8"

language="java"

%>

JSP 페이지의 기본 정보를 설정한다.


Form 처리

<form action="save.jsp" method="post">

<input type="text" name="name">

<input type="submit">

</form>

파라미터 받기

String name = request.getParameter("name");

HTTP 요청 데이터를 가져올 수 있다.


Session

session.setAttribute("id","admin");

String id =
(String)session.getAttribute("id");

로그인 상태 유지 등에 사용된다.


Cookie

Cookie cookie =
new Cookie("user","cloud");

response.addCookie(cookie);

클라이언트 브라우저에 데이터를 저장할 수 있다.


MVC 패턴

View

↓

JSP

↓

Controller

↓

Servlet / Spring

↓

Model

↓

Database

실무에서는 JSP를 View 역할로만 사용하는 것이 일반적이다.


JSP와 Servlet 차이

JSPServlet
HTML 중심Java 코드 중심
View 작성에 적합Controller 작성에 적합
자동 Servlet 변환직접 Java 클래스 작성
UI 개발에 편리로직 구현에 적합

주요 활용 분야

  • 관리자 페이지
  • 사내 ERP
  • 그룹웨어
  • 공공기관 시스템
  • 레거시 Java 웹 프로젝트
  • 전자정부 프레임워크 기반 시스템

장점

  • Java와 높은 호환성
  • Servlet 기반으로 안정적
  • HTML 작성이 쉬움
  • JSTL 및 EL 지원
  • 기업 시스템에서 많이 사용됨

단점

  • Java 코드와 HTML 혼합 시 유지보수가 어려움
  • 최신 프론트엔드 프레임워크 대비 생산성이 낮음
  • 신규 프로젝트에서는 사용 빈도가 감소하는 추세
  • 스크립틀릿 사용 시 코드 가독성이 떨어짐

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • 스크립틀릿(<% %>) 사용 지양
  • EL(Expression Language) 사용
  • JSTL 적극 활용
  • MVC 패턴 적용
  • JSP는 View 전용으로 사용
  • 비즈니스 로직은 Service 계층에서 처리
  • UTF-8 문자셋 적용
  • 공통 레이아웃은 include로 분리
  • Spring MVC와 함께 사용 시 View Resolver 활용

JSP와 함께 사용하는 기술


대표 WAS(Web Application Server)

  • Apache Tomcat
  • Apache TomEE
  • JBoss
  • GlassFish
  • WebLogic
  • WebSphere

관련 문서


출처

  • Jakarta Pages 공식 문서
  • Apache Tomcat 공식 문서
  • 위키백과 「JavaServer Pages」