JSP 기초

JSP(JavaServer Pages)는 HTML 문서 안에 자바 코드를 삽입하여 동적인 웹 페이지를 생성하는 서버 측 기술입니다.

개요

JSP는 자바 기반의 서버 측 스크립트 언어로, 서블릿(Servlet) 기술을 기반으로 합니다. HTML 코드에 자바 코드를 손쉽게 포함시켜 데이터베이스 처리, 사용자 인증 등 복잡한 서버 로직을 구현할 수 있습니다. JSP 파일은 웹 서버에 의해 서블릿으로 변환되고 실행되어 최종적인 HTML 페이지를 만들어냅니다.

참고

JSP는 자바 EE(Java Enterprise Edition)의 한 부분이며, 주로 엔터프라이즈 환경에서 강력한 웹 애플리케이션을 구축하는 데 사용됩니다.

기본 문법

JSP는 HTML 문서 내부에 <% ... %>와 같은 특수 태그를 사용하여 자바 코드를 포함시킵니다.

JSP
<h1>안녕하세요, JSP!</h1>
<%
    // 자바 변수 선언
    String name = "World";

    // 출력
    out.println("<p>Hello, " + name + "!</p>");
%>

주요 요소

JSP 페이지를 구성하는 주요 요소들입니다.

요소 문법 설명
스크립틀릿 <% ... %> 가장 많이 사용되는 요소로, 자바 코드를 삽입합니다.
표현식 <%= ... %> 자바 변수나 메서드의 반환값을 HTML에 직접 출력합니다.
선언부 <%! ... %> 전역 변수나 메서드를 선언합니다.
지시어 <%@ ... %> 페이지의 전반적인 속성(예: 인코딩, 외부 파일 포함)을 설정합니다.

주요 개념

JSP 개발에 있어 중요한 몇 가지 개념들입니다:

개념 설명
EL (Expression Language) ${...} JSP에서 변수나 객체 속성에 접근하는 간결한 문법. 스크립틀릿 사용을 줄이는 데 도움이 됩니다.
JSTL (JSP Standard Tag Library) <c:forEach> 반복문, 조건문 등 자주 사용되는 기능을 미리 만들어 둔 표준 태그 라이브러리입니다.
MVC 패턴 Model-View-Controller 웹 애플리케이션의 구조를 효과적으로 분리하는 디자인 패턴입니다. JSP는 주로 View 역할을 담당합니다.

사용 예제

JSP와 EL을 사용하여 사용자 이름을 출력하는 예제입니다.

JSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
  <title>JSP 예제</title>
</head>
<body>

<%
  // request 객체에 이름 저장
  request.setAttribute("userName", "홍길동");
%>

  <h1>안녕하세요, <%= request.getAttribute("userName") %>님! (스크립틀릿) </h1>
  <h1>안녕하세요, ${userName}님! (EL) </h1>

</body>
</html>

주의사항 및 팁

  • 최신 웹 개발 환경에서는 JSP 단독 사용보다는 Spring Framework 같은 자바 기반의 프레임워크와 함께 사용하는 경우가 많습니다.
  • 스크립틀릿(<% ... %>)보다는 EL(${...})과 JSTL을 사용하여 코드를 더 깔끔하게 작성하는 것이 권장됩니다.
  • JSP 파일을 실행하려면 Tomcat 같은 JSP/서블릿을 지원하는 웹 컨테이너가 필요합니다.
주의

JSP 페이지에 복잡한 비즈니스 로직을 모두 넣는 것은 유지보수를 어렵게 만듭니다. 서블릿과 같은 클래스에 로직을 분리하고, JSP는 오직 화면을 보여주는 역할만 담당하도록 하는 것이 좋습니다. (MVC 패턴)