복잡한뇌구조마냥

[JAVA] JSP ( Java Server Pages ) 본문

BE/JAVA

[JAVA] JSP ( Java Server Pages )

지금해냥 2025. 8. 7. 15:17

1. JSP란 무엇인가?

JSP(Java Server Pages)는 Java 기반의 서버 사이드 웹 페이지 기술로, HTML 안에 Java 코드를 삽입해 동적으로 웹 페이지를 생성하는 방식입니다.
Servlet보다 더 간단하게 UI와 서버 로직을 합쳐서 구현할 수 있도록 설계되었습니다.


2. JSP의 동작 원리

JSP 파일은 처음 실행될 때 Servlet으로 변환되고, 이후 컴파일되어 실행됩니다.

  1. 사용자가 JSP 페이지 요청
  2. JSP 엔진이 JSP → Servlet(Java 소스)로 변환
  3. 변환된 Servlet이 컴파일되어 클래스 파일 생성
  4. Servlet이 실행되어 HTML 결과를 브라우저에 응답

📌 한 번 변환된 JSP는 변경 전까지 재컴파일되지 않음


3. JSP 기본 문법

스크립트릿(Scriptlet)

 
<% 
    String name = "홍길동";
    out.println("안녕하세요, " + name + "님!");
%>

표현식(Expression)

안녕하세요, <%= name %>님!

선언문(Declaration)

<%! 
    int counter = 0;
    public int getCounter() { return counter++; }
%>

4. JSP 주요 내장 객체

JSP는 별도의 선언 없이 바로 사용할 수 있는 9개의 내장 객체를 제공합니다.

객체명 설명
request 클라이언트 요청 정보
response 서버 응답 정보
session 사용자 세션 정보
application 애플리케이션 전역 정보
out 출력 스트림
pageContext 페이지 관련 컨텍스트
config JSP 설정 정보
page 현재 페이지 객체(this)
exception 예외 객체

5. JSP에서 Java 코드 사용 방법

  • 스크립트릿으로 Java 코드 작성
  • JSTL과 EL(Expression Language)로 로직 최소화 → UI와 로직 분리
<c:forEach var="item" items="${list}">
    ${item}
</c:forEach>​

6. JSP와 서블릿의 관계

  • JSP = HTML 중심 + Java 삽입
  • Servlet = Java 중심 + HTML 출력
  • JSP는 최종적으로 Servlet으로 변환되어 동작
    → 유지보수와 가독성을 위해 Servlet과 JSP를 함께 사용

7. JSP의 장단점

장점

  • HTML과 Java 코드 혼합 가능 → 빠른 UI 개발
  • 내장 객체로 편리한 데이터 접근

단점

  • Java 코드가 HTML 안에 섞이면 가독성 저하
  • MVC 패턴 적용이 어려울 수 있음
  • 대규모 프로젝트에서는 유지보수 어려움

 


8. 실무에서 JSP 사용할 때 주의사항

  • 비즈니스 로직은 JSP에 직접 작성하지 않기 → Servlet, Service, DAO로 분리
  • JSTL & EL 적극 활용 → 코드 가독성 향상
  • 공통 UI는 include 또는 taglib로 재사용
  • 보안 고려 (XSS, CSRF 등)

9. JSP 대안 기술과 비교

기술 특징
JSP Java 기반 전통 UI 기술
Thymeleaf Spring에서 많이 사용, HTML 친화적
React/Vue 프론트엔드 전용 SPA 프레임워크
Freemarker 템플릿 엔진, 동적 HTML 생성

10. 마무리

JSP는 여전히 레거시 시스템과 일부 교육 과정에서 많이 쓰이고 있습니다.
하지만 JSP 단독 사용보다는 MVC 패턴과 함께 사용하는 것이 유지보수에 유리합니다

 

참고자료:

https://gofo-coding.tistory.com/entry/MVC-%ED%8C%A8%ED%84%B4-feat-ServletJSP

 

MVC 패턴 (feat. Servlet/JSP)

MVC Model + View + Controller의 구조로 이루어진 패턴(동작 방식)을 말한다. Model 데이터와 비즈니스 로직을 관리/처리한다. 즉, 사용자의 요청에 대한 업무를 처리한다. DAO(Data Access Object) 등의 Java class

gofo-coding.tistory.com

 

LIST