Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 전역변수
- 클론코딩
- font-size
- 으
- jwt
- Websocket
- Strict
- 10px
- ZOOM
- 데이터베이스 #try #이중
- 1px border
- github
- 0.5px border
- 0.75px border
- TS
- 당근마켓
- 타입스크립트
- literal
- ES5
- npm
- TypeScript
- es6
- Props
- 컴포넌튼
- 문서번호
- 0.25px border
- angular
- 서버리스 #
- &연산
- entity
Archives
- Today
- Total
복잡한뇌구조마냥
[JAVA] JSP ( Java Server Pages ) 본문
1. JSP란 무엇인가?
JSP(Java Server Pages)는 Java 기반의 서버 사이드 웹 페이지 기술로, HTML 안에 Java 코드를 삽입해 동적으로 웹 페이지를 생성하는 방식입니다.
Servlet보다 더 간단하게 UI와 서버 로직을 합쳐서 구현할 수 있도록 설계되었습니다.
2. JSP의 동작 원리
JSP 파일은 처음 실행될 때 Servlet으로 변환되고, 이후 컴파일되어 실행됩니다.
- 사용자가 JSP 페이지 요청
- JSP 엔진이 JSP → Servlet(Java 소스)로 변환
- 변환된 Servlet이 컴파일되어 클래스 파일 생성
- 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
'BE > JAVA' 카테고리의 다른 글
[JAVA] 객체 지향 설계의 5대 원칙 – SOLID (3) | 2025.08.10 |
---|---|
[JAVA] 서블릿(Servlet) (0) | 2025.08.08 |
[JAVA] Effective Java - clone 재정의는 주의해서 진행하라 (13) (4) | 2025.08.03 |
[JAVA] Effective Java - 다 쓴 객체 참조를 해제하라 (7) (3) | 2025.08.03 |
[JAVA] 반복문 간결하게 쓰는 법 - 람다와 메서드 참조로 리팩토링 (2) | 2025.07.29 |