JSP와 자바빈즈 (JavaBeans)
JavaBeans란 무엇인가? (What are JavaBeans?)
JavaBeans는 자바에서 재사용 가능한 소프트웨어 컴포넌트를 만들기 위한 규약을 정의한 것입니다. JavaBeans는 다음과 같은 특징을 가집니다:
- 캡슐화: 객체의 데이터는 비공개(private)로 유지되며, public getter와 setter 메서드를 통해 접근할 수 있습니다.
- 기본 생성자: 파라미터가 없는 기본 생성자를 제공해야 합니다.
- 직렬화 가능: 객체의 상태를 직렬화하여 저장하거나 전송할 수 있도록 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 클래스를 정의한 것입니다. 이 클래스는 name
과 age
속성을 가지고 있으며, getter와 setter 메서드를 통해 접근할 수 있습니다.
JavaBeans 작성 (Creating JavaBeans)
JavaBeans를 작성하는 기본 단계는 다음과 같습니다:
- 패키지 정의: JavaBean 클래스는 패키지 내에 정의되어야 합니다.
- 속성 정의: 클래스 변수는 비공개(private)로 정의합니다.
- 기본 생성자 제공: 파라미터가 없는 기본 생성자를 정의합니다.
- getter 및 setter 메서드 제공: 각 속성에 대한 public getter 및 setter 메서드를 정의합니다.
- 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를 사용하는 방법은 다음과 같습니다:
- 태그: JSP 페이지에서 JavaBean을 선언하고 인스턴스화합니다.
- 태그: JavaBean의 속성을 설정합니다.
- 태그: JavaBean의 속성을 가져옵니다.
예제:
- 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; }}
- 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" /><h1>Person Information</h1> <p>Name: <jsp:getProperty name="person" property="name" /></p> <p>Age: <jsp:getProperty name="person" property="age" /></p></body> </html>
위 예제는 다음과 같은 JSP에서 JavaBeans를 사용하는 과정을 보여줍니다:
- 태그를 사용하여 JavaBean을 선언하고 인스턴스화:
<jsp:useBean id="person" class="com.example.Person" scope="page" />
이 코드는Person
이라는 JavaBean을 선언하고 인스턴스화합니다.scope
속성은 빈의 범위를 지정하며, 여기서는page
범위를 사용합니다. - 태그를 사용하여 JavaBean의 속성을 설정:
<jsp:setProperty name="person" property="name" value="John Doe" /> <jsp:setProperty name="person" property="age" value="30" />
이 코드는person
빈의name
과age
속성을 설정합니다. - 태그를 사용하여 JavaBean의 속성을 가져옴:
“`jsp Name: Age:`` 이 코드는
person빈의
name과
age` 속성을 가져와서 출력합니다.
종합 예제 (Comprehensive Example)
모든 과정을 종합적으로 사용하는 예제입니다.
- 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; }}
- 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" /><h1>Product Information</h1> <p>Product ID: <jsp:getProperty name="product" property="productId" /></p> <p>Name: <jsp:getProperty name="product" property="name" /></p> <p>Price: <jsp:getProperty name="product" property="price" /></p></body> </html>
이 종합 예제는 Product
라는 JavaBean을 선언하고 속성을 설정하며, 설정된 속성을 JSP 페이지에서 출력하는 방법을 보여줍니다. 이를 통해 JavaBeans의 작성과 JSP에서의 사용 방법을 이해할 수 있습니다.