자바빈(JavaBean)
자바빈을 사용하는 이유
자바빈의 설계 규약
<jsp:useBean/> 태그
jsp:useBean id=”빈 이름” class=”자바빈 클래스 명” scope=”사용 범위”/>
예제
BeanTest.java
package test;
public class BeanTest {
private String name="kim";
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
}
BeanTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
<html>
<head>
<title>JavaBean Test</title>
<body>
<b>자바빈 사용 예제</b>
<h3><%=beantest.getName() %></h3>
</body>
</head>
</html>
BeanTest.jsp 실행 시 화면
<jsp:setProperty/> 태그
jsp:setProperty name=”빈 이름” property=”속성명” value=”설정할 속성 값”/>
<jsp:setProperty name=”beantest” property=”name” value=”BeanTest!”/>
예제
BeanTest.jsp(수정)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
<jsp:setProperty name="beantest" property="name" value="BeanTest!" />
<html>
<head>
<title>JavaBean Test</title>
<body>
<b>자바빈 사용 예제</b>
<h3><%=beantest.getName() %></h3>
</body>
</head>
</html>
<jsp:setProperty name="beantest" property="name" value="BeanTest!" />
public void setName(String name) { this.name=name; }
BeanTest.jsp(수정) 실행 시 화면
클라이언트에서 전송되어 오는 파라미터 값을 속성 값으로 할당할
경우 value 대신 param을 이용
예제
BeanTest.jsp (수정2)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
<jsp:setProperty name="beantest" property="name" param="name" />
<html>
<head>
<title>JavaBean Test</title>
<body>
<b>자바빈 사용 예제</b>
<h3><%=beantest.getName() %></h3>
</body>
</head>
</html>
beanTest.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="BeanTest.jsp">
이름:<input type="text" name="name"/>
<br/>
<input type="submit" value="전송" />
</form>
</body>
</html>
beanTest.html 실행 시 화면
전송 시 화면
클라이언트에서 전송되어 오는 파라미터 이름이 빈 객체의 속성명과
모두 같다면 다음과 같이 한번에 할당할 속성명을 지정할 수 있다.
<jsp:getProperty/>태그
<jsp:getProperty name=”빈 이름” property=”속성명”/>
예제
BeanTest.jsp(수정3)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
<jsp:setProperty name="beantest" property="name" param="name" />
<html>
<head>
<title>JavaBean Test</title>
<body>
<b>자바빈 사용 예제</b>
<h3><%=beantest.getName() %></h3>
<h3><jsp:getProperty name="beantest" property="name"/></h3>
</body>
</head>
</html>
BeanTest.jsp(수정3) 실행 시 화면
<jsp:getProperty name=*"beantest"* property=*"name"*/>
이 태그가 자바빈 객체에 있는 아래 메소드()를 실행public String getName() { return name; }
자바빈의 영역
영역 | 설명 |
---|---|
page | 현재 페이지의 범위에만 한정된다. 페이지가 변경되면 유지되지 않는 scope 이 |
request | request 요청을 받고 처리를 완료할 때까지 생존되는 scope이다. |
session | 클라이언트 당 하나씩 할당되는 영역이다. 클라이언트가 브라우저를 종료하기 전까지 유지되는 scope 이다. |
application | 사이트 전체의 범위를 가지며, 서버가 종료되기 전에는 계속 유지되는 scope 이다. |