JSP JavaBeans


JSP와 자바빈즈 (JavaBeans)

JavaBeans란 무엇인가? (What are JavaBeans?)

JavaBeans는 자바에서 재사용 가능한 소프트웨어 컴포넌트를 만들기 위한 규약을 정의한 것입니다. JavaBeans는 다음과 같은 특징을 가집니다:

  1. 캡슐화: 객체의 데이터는 비공개(private)로 유지되며, public getter와 setter 메서드를 통해 접근할 수 있습니다.
  2. 기본 생성자: 파라미터가 없는 기본 생성자를 제공해야 합니다.
  3. 직렬화 가능: 객체의 상태를 직렬화하여 저장하거나 전송할 수 있도록 Serializable 인터페이스를 구현해야 합니다.

JavaBeans는 사용자 인터페이스 구성 요소나 데이터 모델을 표현하는 데 자주 사용됩니다.

예제:

package com.example;

import java.io.Serializable;

public class Person implements Serializable {
    private String name;
    private int age;

    // 기본 생성자
    public Person() {
    }

    // name 속성의 getter
    public String getName() {
        return name;
    }

    // name 속성의 setter
    public void setName(String name) {
        this.name = name;
    }

    // age 속성의 getter
    public int getAge() {
        return age;
    }

    // age 속성의 setter
    public void setAge(int age) {
        this.age = age;
    }
}

위 예제는 Person이라는 JavaBean 클래스를 정의한 것입니다. 이 클래스는 nameage 속성을 가지고 있으며, getter와 setter 메서드를 통해 접근할 수 있습니다.

JavaBeans 작성 (Creating JavaBeans)

JavaBeans를 작성하는 기본 단계는 다음과 같습니다:

  1. 패키지 정의: JavaBean 클래스는 패키지 내에 정의되어야 합니다.
  2. 속성 정의: 클래스 변수는 비공개(private)로 정의합니다.
  3. 기본 생성자 제공: 파라미터가 없는 기본 생성자를 정의합니다.
  4. getter 및 setter 메서드 제공: 각 속성에 대한 public getter 및 setter 메서드를 정의합니다.
  5. Serializable 구현: 클래스가 직렬화 가능하도록 Serializable 인터페이스를 구현합니다.

예제:

package com.example;

import java.io.Serializable;

public class Product implements Serializable {
    private String productId;
    private String name;
    private double price;

    // 기본 생성자
    public Product() {
    }

    // productId 속성의 getter
    public String getProductId() {
        return productId;
    }

    // productId 속성의 setter
    public void setProductId(String productId) {
        this.productId = productId;
    }

    // name 속성의 getter
    public String getName() {
        return name;
    }

    // name 속성의 setter
    public void setName(String name) {
        this.name = name;
    }

    // price 속성의 getter
    public double getPrice() {
        return price;
    }

    // price 속성의 setter
    public void setPrice(double price) {
        this.price = price;
    }
}

위 예제는 Product라는 JavaBean 클래스를 정의한 것입니다. 이 클래스는 productId, name, price 속성을 가지고 있으며, getter와 setter 메서드를 통해 접근할 수 있습니다.

JSP에서 JavaBeans 사용 (Using JavaBeans in JSP)

JSP에서 JavaBeans를 사용하는 방법은 다음과 같습니다:

  1. 태그: JSP 페이지에서 JavaBean을 선언하고 인스턴스화합니다.
  2. 태그: JavaBean의 속성을 설정합니다.
  3. 태그: JavaBean의 속성을 가져옵니다.

예제:

  1. Person.java package com.example; import java.io.Serializable; public class Person implements Serializable { private String name; private int age;// 기본 생성자 public Person() { } // name 속성의 getter public String getName() { return name; } // name 속성의 setter public void setName(String name) { this.name = name; } // age 속성의 getter public int getAge() { return age; } // age 속성의 setter public void setAge(int age) { this.age = age; }}
  2. index.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>JavaBeans Example</title> </head> <body> <jsp:useBean id="person" class="com.example.Person" scope="page" /> <jsp:setProperty name="person" property="name" value="John Doe" /> <jsp:setProperty name="person" property="age" value="30" />&lt;h1&gt;Person Information&lt;/h1&gt; &lt;p&gt;Name: &lt;jsp:getProperty name="person" property="name" /&gt;&lt;/p&gt; &lt;p&gt;Age: &lt;jsp:getProperty name="person" property="age" /&gt;&lt;/p&gt;</body> </html>

위 예제는 다음과 같은 JSP에서 JavaBeans를 사용하는 과정을 보여줍니다:

  1. 태그를 사용하여 JavaBean을 선언하고 인스턴스화: <jsp:useBean id="person" class="com.example.Person" scope="page" /> 이 코드는 Person이라는 JavaBean을 선언하고 인스턴스화합니다. scope 속성은 빈의 범위를 지정하며, 여기서는 page 범위를 사용합니다.
  2. 태그를 사용하여 JavaBean의 속성을 설정: <jsp:setProperty name="person" property="name" value="John Doe" /> <jsp:setProperty name="person" property="age" value="30" /> 이 코드는 person 빈의 nameage 속성을 설정합니다.
  3. 태그를 사용하여 JavaBean의 속성을 가져옴:
    “`jsp Name: Age: `` 이 코드는person빈의nameage` 속성을 가져와서 출력합니다.

종합 예제 (Comprehensive Example)

모든 과정을 종합적으로 사용하는 예제입니다.

  1. Product.java package com.example; import java.io.Serializable; public class Product implements Serializable { private String productId; private String name; private double price;// 기본 생성자 public Product() { } // productId 속성의 getter public String getProductId() { return productId; } // productId 속성의 setter public void setProductId(String productId) { this.productId = productId; } // name 속성의 getter public String getName() { return name; } // name 속성의 setter public void setName(String name) { this.name = name; } // price 속성의 getter public double getPrice() { return price; } // price 속성의 setter public void setPrice(double price) { this.price = price; }}
  2. product.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Product Example</title> </head> <body> <jsp:useBean id="product" class="com.example.Product" scope="page" /> <jsp:setProperty name="product" property="productId" value="P1234" /> <jsp:setProperty name="product" property="name" value="Laptop" /> <jsp:setProperty name="product" property="price" value="1500.00" />&lt;h1&gt;Product Information&lt;/h1&gt; &lt;p&gt;Product ID: &lt;jsp:getProperty name="product" property="productId" /&gt;&lt;/p&gt; &lt;p&gt;Name: &lt;jsp:getProperty name="product" property="name" /&gt;&lt;/p&gt; &lt;p&gt;Price: &lt;jsp:getProperty name="product" property="price" /&gt;&lt;/p&gt;</body> </html>

이 종합 예제는 Product라는 JavaBean을 선언하고 속성을 설정하며, 설정된 속성을 JSP 페이지에서 출력하는 방법을 보여줍니다. 이를 통해 JavaBeans의 작성과 JSP에서의 사용 방법을 이해할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *