[JSP]JSP 스크립트: HTML과 Java의 조화로 동적 웹페이지 구현하기

DU·2025년 1월 16일
0

JSP

목록 보기
4/5
post-thumbnail

JSP(JavaServer Pages)는 웹 애플리케이션 개발에서 HTML과 Java를 결합하여 동적인 웹페이지를 생성할 수 있는 강력한 도구입니다. 이번 글에서는 JSP 스크립트를 이해하고, HTML에 Java 코드를 삽입하여 JSP 파일을 작성하는 방법을 단계적으로 살펴보겠습니다.


JSP와 Servlet의 차이

  • Servlet: Java 코드로만 이루어져 있으며, .java 파일로 작성된 후 .class 파일로 컴파일됩니다.

    • 예: MyServlet.java -> MyServlet.class
  • JSP: HTML 문서 안에 Java 코드를 포함하는 형태로, JSP 파일은 서버에서 처리되며 최종적으로 Servlet으로 변환됩니다.

    • 예: example.jsp -> example_jsp.java -> example_jsp.class

이 변환 과정 덕분에 JSP는 Java의 동적 처리 능력과 HTML의 간단한 문서 작성 능력을 결합합니다.


JSP 주요 스크립트 태그

JSP 스크립트 태그는 HTML 문서 내에서 Java 코드를 삽입하거나 실행하기 위해 사용됩니다. 주요 태그는 다음과 같습니다:

1. 선언 태그 (<%! ... %>):

  • 용도: JSP 페이지에서 Java 멤버 변수나 메서드를 선언합니다.
  • 특징: 선언된 변수와 메서드는 JSP 파일이 서블릿으로 변환된 후 클래스의 멤버로 정의됩니다.
<%!
	int num = 10;
	String str = "jsp";
	ArrayList<String> list = new ArrayList<String>();
	
	public void jspMethod() {
		System.out.println("--jspMethod()--");
	}
%>

2. 주석 태그 (<%-- ... --%>):

  • 용도: JSP에서 주석을 작성합니다.
  • 특징: 주석 내용은 JSP가 서블릿으로 변환될 때 제외되므로 클라이언트에게 전송되지 않습니다.
<%-- This is a JSP comment. It will not appear in the client-side HTML. --%>

3. 스크립트릿 태그 (<% ... %>):

  • 용도: JSP 페이지 내에서 Java 코드를 삽입하고 실행합니다.
  • 특징: HTML과 Java 코드를 혼합하여 동적 로직을 처리할 수 있습니다.
<%
	if (num > 0) {
%>
<p>num is greater than 0</p>
<%
	} else {
%>
<p>num is less than or equal to 0</p>
<%
	}
%>

4. 표현식 태그 (<%= ... %>):

  • 용도: Java 변수나 메서드의 반환값을 출력합니다.
  • 특징: 태그 내부의 코드는 자동으로 out.print() 메서드로 처리됩니다.
<p>num is <%= num %></p>

5. 지시어 (<%@ ... %>):

  • 용도: JSP 페이지의 설정 및 외부 파일 또는 라이브러리 포함 등을 정의합니다.
  • 주요 지시어:
    1. page 지시어: JSP 페이지의 전역 설정을 정의합니다.
      <%@ page language="java" contentType="text/html; charset=UTF-8" %>
    2. include 지시어: 다른 JSP 파일을 포함합니다.
      <%@ include file="header.jsp" %>
    3. taglib 지시어: 커스텀 태그 라이브러리를 사용할 수 있도록 정의합니다.
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSP 예제 코드

다음은 위에서 설명한 주요 태그를 활용한 JSP 예제입니다.

<%@page import="java.util.ArrayList"%>
<%@ 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>

<%@include file="header.jsp" %>

<!-- 선언태그 -->
<%!
	int num = 10;
	String str = "jsp";
	ArrayList<String> list = new ArrayList<String>();
	
	public void jspMethod() {
		System.out.println("--jspMethod()--");
	}
%>

<!-- 주석태그 -->
<%-- This is a JSP comment. It will not appear in the client-side HTML. --%>

<!-- 스크립트릿 태그 -->
<%
	if (num > 0) {
%>
<p>num is greater than 0</p>
<%
	} else {
%>
<p>num is less than or equal to 0</p>
<%
	}
%>

<!-- 표현식 태그 -->
<p>num is <%= num %></p>

<%@include file="footer.jsp" %>

</body>
</html>

Java 코드가 브라우저에 표시되지 않는 이유

JSP 파일은 서버에서 처리되며, HTML은 클라이언트(브라우저)로 전송됩니다. Java 코드는 서버에서 실행된 후 결과만 HTML로 변환되기 때문에 클라이언트는 실행된 결과만 확인할 수 있습니다.

  • 변환 과정:
    1. example.jspexample_jsp.java: JSP 파일이 Servlet으로 변환.
    2. example_jsp.javaexample_jsp.class: Servlet 클래스가 컴파일.
    3. example_jsp.class: 서버에서 실행되고, 결과 HTML이 클라이언트로 전송.

추가적으로 알아두면 좋은 사항

  1. JSP의 장점:

    • HTML과 Java의 자연스러운 통합.
    • 빠른 프로토타이핑이 가능.
    • Java의 강력한 기능 활용.
  2. JSP의 단점:

    • 복잡한 비즈니스 로직 포함 시 가독성 저하.
    • MVC 패턴에서 View에 해당하며, 비즈니스 로직은 별도의 Servlet 또는 Java 클래스에서 처리하는 것이 바람직.
  3. JSP와 MVC 패턴:

    • JSP는 View 역할로 사용되고, Servlet은 Controller 역할을 담당합니다. 이를 통해 코드의 재사용성과 유지보수를 높일 수 있습니다.

결론

JSP 스크립트는 동적인 웹 애플리케이션 개발에서 HTML과 Java를 유연하게 결합할 수 있는 강력한 도구입니다. 선언 태그, 주석 태그, 스크립트릿 태그, 표현식 태그, 지시어 등을 적절히 활용하면 동적이고 효율적인 웹페이지를 쉽게 구현할 수 있습니다.

0개의 댓글