Java Bean?

자바 빈(Bean)이란?

  • 웹 페이지를 구축하다보면 같은 기능을 갖지만 페이지 구성이 달라질 경우 같은 수고를 반복할 경우가 있다.
  • 웹 페이지를 보다 효율적이고 생산적으로 작성하려면 코드를 재활용 할 수 있어야 한다.
  • 웹 사이트를 개발할 때, JSP로 웹 페이지를 디자인 하고 내부적인 데이터 처리는 자바 빈으로 구현한다.

  • 빈(Bean)은 재활용이 가능한 컴포넌트(Component)와 마찬가지로 소프트웨어를 부품화 한것이다.

  • 소프트웨어도 부품화하여 개발하는데 이를 자바에서 빈(Bean)이라고 하고 일반적으로 컴포넌트라고 한다.

  • 빈(Bean)은 한번 개발하고 나면 여러가지 페이지에서 동시에 가져다 사용할 수 있다.

  • 빈(Bean)은 재사용 가능한 객체로서 대부분 데이터를 저장하는 역할을 한다.

다음은 java bean 과 useBean을 활용한 예시이다.

MemberJoin.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>


<center>
<h2>Join</h2>
<form action="MemberJoinProc.jsp" method="post">

<table width="500" border="1">

<tr height="50">
<td width="150" align="center">ID</td>
<td width="350" align="center">
<input type="text" name="id" size="40" placeholder="Write the ID" />
</td>
</tr>

<tr height="50">
<td width="150" align="center">Password</td>
<td width="350" align="center">
<input type="password" name="pass1" size="40" />
</td>
</tr>

<tr height="50">
<td width="150" align="center">E-mail</td>
<td width="350" align="center">
<input type="email" name="email" size="40" />
</td>
</tr>

<tr height="50">
<td width="150" align="center">Phone Number</td>
<td width="350" align="center">
<input type="tel" name="tel" size="40" />
</td>
</tr>

<tr height="50">
<td width="150" align="center">Address</td>
<td width="350" align="center">
<input type="text" name="address" size="40" />
</td>
</tr>

<tr height="50">
<td align="center" colspan="2">
<input type="submit" value="Join Now">
<input type="reset" value="Cancel">
</td>
</tr>
</table>
</form>
</center>

</body>
</html>

Java Resources 파일
bean.MemberBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package bean;

public class MemberBean {

private String id;
private String pass1;
private String email;
private String tel;
private String address;


public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPass1() {
return pass1;
}
public void setPass1(String pass1) {
this.pass1 = pass1;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}

}

MemberJoinProc.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>

<center>
<h2>User's Information</h2>

<%
request.setCharacterEncoding("euc-kr");
%>

<!-- request로 넘어온 데이터를 자바 빈즈랑 맵핑 시켜주는 useBean -->
<jsp:useBean id="mbean" class="bean.MemberBean"><!-- 객체생성 MemberBean mbean = new MemberBean() -->
<!-- jsp 내용을 자바빈 클래스(MemberBean을 의미)에 데이터를 맵핑(넣어줌) -->
<jsp:setProperty name="mbean" property="*"/><!-- 자동으로 모두 맵핑 시켜주세요 -->
</jsp:useBean>

<h2>Your id is <jsp:getProperty property="id" name="mbean"/></h2>
<h2>Your password is <jsp:getProperty property="pass1" name="mbean"/></h2>
<h2>Your email is <jsp:getProperty property="email" name="mbean"/></h2>

<h2>Your phone number is <%= mbean.getTel() %></h2>

</center>

</body>
</html>