
JSP (Java Server Pages)
Java 기반의 서버 측 웹 프로그래밍 언어
JSP는 동적으로 웹 페이지를 생성하는 데 사용되며, HTML 코드 안에 Java 코드를 포함할 수 있습니다.
이를 통해 동적인 웹 페이지를 구축할 수 있습니다.
동적으로 웹 페이지를 생성하는 이유는 뭘까?
- 사용자 맞춤형 콘텐츠 제공: 사용자의 요구나 상황에 따라 맞춤형 콘텐츠 제공 가능.
- 실시간 업데이트: 데이터베이스나 외부 소스에서 정보를 가져와 실시간으로 업데이트 가능.
- 인터랙티브한 기능 제공: 사용자와의 상호작용에 응답하여 동적으로 변경되는 요소 제공.
- 다양한 디바이스 지원: 다양한 디바이스에 대응하여 동적으로 레이아웃을 조정 가능.
- 개인화와 추천 시스템: 사용자의 행동 기반으로 개인화된 추천이나 콘텐츠 제공 가능.
- 보안 및 권한 관리: 로그인 상태, 사용자의 역할 및 권한에 따라 다르게 콘텐츠 제공 가능.
JSP를 사용하는 이유?
- 동적 콘텐츠 생성: 서버 측에서 Java 코드를 사용하여 동적으로 웹페이지를 생성할 수 있음.
- HTML과의 쉬운 통합: HTML과 Java 코드를 쉽게 혼합하여 웹페이지를 작성할 수 있음.
- 간단한 문법: 간결한 문법을 통해 빠르게 웹 애플리케이션을 개발할 수 있음.
- Java 생태계와 통합: Java 언어를 기반으로 하여 Java 생태계의 다양한 라이브러리 및 프레임워크와 쉽게 통합 가능.
- 재사용 가능한 컴포넌트: JavaBeans 등을 사용하여 재사용 가능한 코드 블록을 정의하여 모듈화 가능.
JSP 특징
-
서버 측 스크립팅:
- JSP 페이지는 주로 HTML 코드로 이루어져 있으며, 서버 측에서 실행되는 Java 코드를 포함할 수 있습니다.
<% %> 태그를 사용하여 Java 코드를 삽입할 수 있습니다.
-
JSP 태그:
- JSP 페이지에서 사용되는 여러 종류의 태그가 있습니다. 예를 들면,
<%@ %> 지시자는 페이지 속성을 정의하고, <%! %> 태그는 멤버 변수와 메서드를 선언할 때 사용됩니다.
-
JavaBeans:
- JSP 페이지에서는 JavaBeans를 사용하여 재사용 가능한 코드 블록을 정의할 수 있습니다. 이를 통해 코드의 모듈화와 유지보수성을 향상시킬 수 있습니다.
-
표현 언어(EL, Expression Language):
- EL은 JSP 페이지에서 데이터를 표시하고 조작하는 데 사용되는 간단한 표현 언어입니다.
${}로 시작하는 문법을 사용하여 변수, 속성, 메서드 등을 참조할 수 있습니다.
-
액션 태그:
- 액션 태그는 JSP에서 특정한 동작을 수행하는 데 사용됩니다. 예를 들어, 데이터베이스 연동, 조건문 처리, 반복문 등의 작업을 수행할 수 있습니다.
-
생명 주기:
- JSP 페이지는 서블릿으로 변환되어 실행됩니다. JSP 페이지의 생명 주기는 초기화, 서비스, 소멸과 같은 단계로 구성됩니다.
간단한 JSP 예시:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP Example</title>
</head>
<body>
<% String message = "Hello, JSP!"; %>
<h1><%= message %></h1>
</body>
</html>
Java 코드를 사용하여 변수를 선언하고 출력
JSP 동작원리

-
클라이언트 요청:
- 클라이언트(웹 브라우저 등)에서 특정 JSP 페이지를 요청합니다.
-
서버에서의 처리:
- 서버는 JSP 파일을 서블릿으로 변환합니다. JSP 파일은 실제로 서블릿 클래스로 컴파일되어 실행됩니다.
- 변환된 서블릿은 Java 코드로 이루어져 있으며, 초기화, 서비스, 소멸과 같은 생명 주기 메서드가 포함됩니다.
-
서블릿 실행:
- 클라이언트 요청이 들어오면 해당 JSP에 대한 서블릿이 실행됩니다.
- JSP 파일의 Java 코드 부분이 실행되면서 동적인 데이터 처리, 데이터베이스 연동, 비즈니스 로직 처리 등이 이루어집니다.
-
HTML 생성:
- 서블릿이 실행되면서 생성된 결과는 HTML 형태로 변환되어 클라이언트에게 응답됩니다.
- 서버에서 동적으로 생성된 HTML은 클라이언트에게 전송되고, 브라우저에서 렌더링되어 화면에 표시됩니다.
-
클라이언트 응답:
- 클라이언트는 받은 HTML을 렌더링하여 사용자에게 동적으로 생성된 웹 페이지를 보여줍니다.
-
종료:
- 서블릿의 생명 주기가 끝나면 해당 JSP 페이지의 서블릿 인스턴스도 소멸됩니다.
참고
면접을 위한 cs 전공지식 노트