[java] JSP에서의 동적 웹 페이지 생성 방법

JSP(Java Server Pages)는 Java 언어를 기반으로 하는 서버 측 스크립트 언어로, 동적인 웹 페이지를 생성하는 데 매우 유용합니다. JSP를 사용하여 사용자에게 동적으로 내용을 제공하는 방법을 알아보도록 하겠습니다.

1. JSP 기본 구조

먼저, JSP 파일의 기본적인 구조를 알아보겠습니다. JSP 파일은 일반적으로 .jsp 확장자를 가지며, HTML 코드와 Java 코드가 혼합되어 있습니다. JSP 파일은 다음과 같은 구조를 가지고 있습니다:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP Example</title>
</head>
<body>
    <%-- HTML 코드 --%>
    <h1>Hello, JSP!</h1>
    
    <%-- Java 코드 --%>
    <% String name = "John"; %>
    <p>Welcome, <%= name %>!</p>
    
    <%--  많은 Java 코드 --%>
    
</body>
</html>

2. JSP에서의 동적 데이터 사용

JSP에서는 Java 코드를 사용하여 동적으로 데이터를 생성하고 사용할 수 있습니다. 위의 예제에서는 name 변수를 선언하고 해당 변수의 값을 HTML 코드에서 사용하는 방법을 보여줍니다.

${name} 문법을 사용하여 변수 값을 출력할 수도 있습니다:

<p>Welcome, ${name}!</p>

3. JSP에서의 데이터 전달

JSP에서 다른 페이지 또는 서블릿으로부터 데이터를 받아 사용할 수도 있습니다. 이를 위해 request 객체를 사용하거나, URL 파라미터를 통해 데이터를 전달하는 방법을 사용할 수 있습니다.

<% String username = request.getParameter("username"); %>
<p>Hello, <%= username %>!</p>

4. JSP에서의 제어 구문 사용

JSP에서는 Java 언어의 제어 구문을 사용하여 조건문과 반복문을 처리할 수 있습니다. 예를 들어, if-else 구문을 사용하여 조건에 따라 다른 내용을 출력할 수 있습니다.

<% if (조건) { %>
    <p>조건이 참인 경우</p>
<% } else { %>
    <p>조건이 거짓인 경우</p>
<% } %>

또한 for 루프를 사용하여 반복문을 처리할 수도 있습니다:

<% for (int i = 0; i < 5; i++) { %>
    <p>반복 : <%= i %></p>
<% } %>

5. JSP에서의 데이터베이스 접근

JSP에서는 JDBC(Java Database Connectivity)를 사용하여 데이터베이스에 접근할 수 있습니다. JDBC를 사용하는 방법에 대해서는 다른 문서에서 자세히 다루겠지만, 간단하게 JSP에서 JDBC를 사용하는 방법을 보여드리겠습니다:

<%@ page import="java.sql.*" %>
<%
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    
    try {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
        stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT * FROM users");
        
        while (rs.next()) {
            String name = rs.getString("name");
            int age = rs.getInt("age");
            out.println("Name: " + name + ", Age: " + age);
        }
    } catch(Exception e) {
        e.printStackTrace();
    } finally {
        try { rs.close(); } catch (Exception e) {}
        try { stmt.close(); } catch (Exception e) {}
        try { conn.close(); } catch (Exception e) {}
    }
%>

위의 예제에서는 MySQL 데이터베이스에 연결하여 users 테이블에서 데이터를 가져와 출력하는 방법을 보여줍니다.

6. 요약

JSP를 사용하여 동적인 웹 페이지를 생성하는 방법에 대해 알아보았습니다. JSP를 사용하면 Java 언어의 강력한 기능을 활용하여 동적으로 웹 페이지를 구성할 수 있습니다. 위에서 다룬 내용을 토대로 JSP를 사용한 프로젝트를 개발해보세요!


참고 자료: