1. JSP란?
: JSP는 Java 기반의 서버 사이드 스크립팅 언어로, HTML과 Java 코드를 혼합하여 동적인 웹 페이지를 생성하는 기술
: 주로 서블릿(Servlet)과 함께 사용되며, 현재는 Spring Boot, Thymeleaf, React 등의 기술이 등장하면서 사용이 줄어들고 있다.
: 하지만 기존 레거시 시스템에서는 여전히 사용되는 경우가 많다.
: 즉, 기존의 JSP 사용법을 익혀두는 것도 중요한 기초 지식이다!
2. JSP 기본 문법
: JSP는 여러 가지 스크립트 요소를 사용하여 HTML과 Java를 결합한다.
2-1. 디렉티브(Directive)
: JSP 페이지의 전반적인 설정을 정의하는 부분
- page 지시어: 페이지의 속성을 설정
- include 지시어: 다른 JSP 파일을 포함할 때 사용
- taglib 지시어: JSTL(JavaServer Pages Standard Tag Library)을 사용할 때 선언
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="com.mulcam.edu.Member" %>
: import를 사용하여 외부 클래스를 불러올 수 있다.
2-2. 스크립트 요소(Script Elements)
: JSP에서 Java 코드를 사용할 수 있는 여러 가지 방법이 있다.
선언문(Declaration) <%! ... %>
: 클래스 수준에서 변수를 선언하거나 함수를 정의할 때 사용
: class 정의, 함수 정의, 전역(golbal) 변수 선언 가능
<%!
class Human {
String name;
public Human() {}
public Human(String name) {
this.name = name;
}
public void print() {
System.out.println("이름: " + name);
}
}
public void func() {
System.out.println("func() 호출");
}
int glNumber = 100;
%>
: 선언문 안에서 작성된 내용은 JSP가 서블릿 클래스로 변환될 때 클래스의 멤버로 선언된다.
스크립틀릿(Scriptlet) <% ... %>
: JSP 파일 내부에서 Java 코드를 실행할 때 사용된다.
<%
String name = "홍길동";
System.out.println("Welcome JSP");
%>
: 하지만 JSP에서 Java 코드를 직접 사용하는 것은 유지보수에 불리하므로 권장되지 않는다.
: 대신 JSTL과 EL(Expression Language)을 사용하는 것이 더 바람직하다.
표현식(Expression) <%= ... %>
: JSP 페이지에서 값을 출력할 때 사용한다.
<p>이름: <%= name %></p>
<input type="text" size="20" value="<%= name %>" />
: out.print(name);과 동일한 역할을 한다.
3. JSP와 Java 코드 혼합 사용
: JSP는 Java 코드와 혼합하여 사용할 수 있다.
for문 사용 예제
<%
for (int i = 0; i < 10; i++) {
%>
<div><%= i + 1 %></div>
<%
}
%>
**하지만 이렇게 사용하는 것은 매우 비효율적임.. JSTL을 활용하는 것이 더 좋음!!!**
JSTL을 사용한 경우:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach var="i" begin="1" end="10">
<div>${i}</div>
</c:forEach>
4. JSP에서 자바 빈즈(Beans) 활용
: JSP에서 Java 클래스를 활용하는 방법 중 하나는 JavaBeans를 이용하는 것이다.
<jsp:useBean id="member" class="com.mulcam.edu.Member" scope="page"/>
<jsp:setProperty name="member" property="name" value="일지매"/>
<p>이름: <jsp:getProperty name="member" property="name"/></p>
: 자바 클래스를 활용한 객체 생성
: jsp:useBean을 사용하면, new를 사용하지 않고도 객체를 생성할 수 있다.
5. JSP 사용의 문제점과 대안(웹 개발에서 JSP는 점점 안쓰는 추세)
- HTML과 Java 코드가 섞여 있어 유지보수가 어렵다.
- 로직 처리를 JSP에서 직접 하면 MVC 패턴을 깨트릴 위험이 있다.
- 템플릿 엔진(Thymeleaf, Mustache, FreeMarker)과 비교해 가독성이 떨어진다.
- Spring Framework와 함께 사용할 경우 가급적 JSP를 피하고, View Resolver를 통해 다른 템플릿 엔진을 사용하는 것이 좋다.
대안 기술
1. Spring Boot + Thymeleaf
- HTML과 비슷한 문법을 사용하며, Java 코드를 포함하지 않는다.
2. React, Vue.js 같은 프론트엔드 프레임워크
- 서버에서 데이터를 JSON 형태로 반환하고, 클라이언트에서 렌더링하는 방식
3. JSP를 사용하더라도 JSTL과 EL(Expression Language) 활용
- Java 코드 없이도 로직을 처리할 수 있다.
'back > JSP' 카테고리의 다른 글
JSP) String / List / Map 각각 데이터 처리 방식 (0) | 2025.03.03 |
---|---|
JSP) 예제 : AJAX() / load() 정리 (0) | 2025.03.03 |
JSP) 예제 : request, session, pageContext 활용 데이터 전달 (0) | 2025.03.03 |
JSP) 예제 : 설문 폼 및 데이터 처리 코드 (0) | 2025.03.01 |
JSP) 내장 객체(Implicit Objects) 정리 (0) | 2025.03.01 |