자바빈 : 자바로 작성된 컴포넌트들을 일반적으로 일컫는 말로, 자바는 프로그램 기본 단위가 클래스이고,
자바빈은 클래스들로 이루어진 복합적인 구조이다.
JSP 페이지에 화면 표시 부분과 로직들이 함께 존재하여 복잡하게 구성되는 것을 피하고
JSP 페이지의 로직 부분을 분리해서 코드를 재사용함으로써 프로그램의 효율을 높이는 것이
자바빈의 사용 목적이다. -> 모듈화(컴포넌트화)
TestBean.jsp
package ch10.Bean;
public class TestBean { //자바빈 클래스 정의
private String name;
public TestBean() {
super();
// TODO Auto-generated constructor stub
}
public TestBean(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "TestBean [name=" + name + "]";
}
}
beanTestForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>beanTestForm.jsp</h1>
<h2>이름을 입력하세요</h2>
<form action="beanTestPro.jsp"> //프로그램 제어가 beanTestPro.jsp로 이동
<table border="1">
<tr>
<td>이름:</td>
<td><input type="text" name="name"/>
</tr>
<tr>
<td colspan="2" style="align:text-center;">
<input type="submit" value="완료"/>
</td>
</tr>
</table>
</form>
</body>
</html>
beanTestPro.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>beanTestPro.jsp</h1>
<h2>자바빈을 사용하는 JSP페이지</h2>
<!-- form의 name속성의 값과 setProperty의 property 값이 같아야 함
request.getParameter(name)이 자동 실행됨 -->
<jsp:useBean id="b" class="ch10.Bean.TestBean">
<jsp:setProperty name="b" property="name"/>
</jsp:useBean>
<!-- b.getName() -->
<jsp:getProperty property="name" name="b"/>
</body>
</html>
* 자바빈 관련 액션태그
-<jsp:useBean id="..." class="..." scope=".."/> :자바빈 객체를 생성
-<jsp:setProperty name="..." property="..." value="..."/>
: 생성된 자바빈 객체에 프로퍼티 값 저장
-<jsp:getProperty name="..." property=".."/>
: 생성된 자바빈 객체에서 저장된 프로퍼티 값을 사용하기 위해 얻어냄.
'JSP' 카테고리의 다른 글
세션(session) 개요 (0) | 2021.01.16 |
---|---|
쿠키(Cookie) 예제 (0) | 2021.01.16 |
include 액션태그(<jsp:include> 액션태그) (0) | 2021.01.16 |
JSP페이지의 액션태그 (0) | 2021.01.16 |
Switch 문 (0) | 2021.01.16 |
댓글