JavaBeans는 Java에서 객체를 재사용할 수 있도록 설계된 클래스이다. JavaBeans는 간단한 규약을 따라 작성된 클래스이며, 주로 데이터 저장 및 전달(예: JSP, 서블릿, 또는 다른 계층 간)을 목적으로 사용됨
JavaBeans의 특징
- 기본 생성자: 매개변수가 없는 기본 생성자를 제공해야 한다.
- 필드 접근 제한: 클래스의 멤버 변수(필드)는 private으로 선언된다.
- Getter와 Setter 메서드: 필드에 접근하기 위한 public 메서드를 제공해야된다.
- Serializable 구현 가능: JavaBeans 클래스는 보통 java.io.Serializable 인터페이스를 구현 해야한다. (필수는 아님)
JavaBeans 사용법
1. JavaBeans 클래스 작성
아래는 User라는 JavaBeans 클래스를 예로 들어본다
import java.io.Serializable;
public class User implements Serializable {
private int id; // ID
private String name; // 이름
private String email; // 이메일
// 기본 생성자
public User() {}
// Getter와 Setter
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
2. JavaBeans 객체를 사용하여 데이터 저장 및 전달
(1) 서블릿에서 JavaBeans 사용
서블릿에서 데이터를 처리하고 JavaBeans 객체를 JSP로 전달할 수 있음
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class UserServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// JavaBean 객체 생성 및 값 설정
User user = new User();
user.setId(1);
user.setName("John Doe");
user.setEmail("john.doe@example.com");
// JavaBean 객체를 요청 속성에 저장
request.setAttribute("user", user);
// JSP로 포워딩
RequestDispatcher dispatcher = request.getRequestDispatcher("user.jsp");
dispatcher.forward(request, response);
}
}
(2) JSP에서 JavaBeans 사용
JSP에서는 EL(Expression Language) 또는 jsp:useBean을 사용해 JavaBeans 객체에 접근할 수 있음
EL로 JavaBeans 사용:
<h1>User Details</h1>
<p>ID: ${user.id}</p>
<p>Name: ${user.name}</p>
<p>Email: ${user.email}</p>
<jsp:useBean>으로 JavaBeans 사용:
jsp
코드 복사
<jsp:useBean id="user" class="User" scope="request" />
<p>ID: <jsp:getProperty name="user" property="id" /></p>
<p>Name: <jsp:getProperty name="user" property="name" /></p>
<p>Email: <jsp:getProperty name="user" property="email" /></p>
3. JavaBeans와 데이터베이스 연동
JavaBeans를 사용하여 DB 데이터를 처리하면 편리하게 데이터를 객체로 전달할 수 있음
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class UserDAO {
private Connection getConnection() throws SQLException {
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String username = "your_username";
String password = "your_password";
return DriverManager.getConnection(url, username, password);
}
public List<User> getAllUsers() {
List<User> users = new ArrayList<>();
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement("SELECT id, name, email FROM users");
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
return users;
}
}
JavaBeans의 활용 범위
- MVC 아키텍처:
- 모델(Model) 계층에서 데이터 저장 및 전달에 사용.
- 서블릿에서 데이터를 처리하고, JSP에서 데이터를 렌더링.
- JSP 페이지에서 데이터 바인딩:
- jsp:useBean 태그를 사용해 객체를 바인딩.
- EL을 사용해 간단히 출력.
- DB와 연동:
- 데이터베이스 테이블의 레코드를 JavaBeans 객체로 매핑하여 처리.
- DAO(Data Access Object)와 함께 사용.
JavaBeans의 장점
- 캡슐화: 데이터를 캡슐화하여 외부에서 직접 접근하지 못하도록 보호.
- 재사용성: 클래스를 작성해 다양한 곳에서 재사용 가능.
- 유지보수성: 명확한 Getter/Setter 구조로 관리가 쉬움.
- JSP 연동 편의성: jsp:useBean과 EL을 통해 데이터 접근이 간단.
'Front-End > WEB' 카테고리의 다른 글
| SQL SESSION 메서드 (0) | 2024.12.02 |
|---|---|
| SQL Session Factory (0) | 2024.12.02 |
| 이미지 파일저장 (0) | 2024.11.21 |
| JSP INCLUDE (0) | 2024.11.21 |
| Scope (0) | 2024.11.20 |