본문 바로가기
프로그래밍 공부/JSP

[lesson] JSP - 자바빈즈(JAVABEANS)

by Luna_lua 2023. 1. 10.
반응형

<자바 빈즈 (액션 태그)>

jsp의 표준 액션 태그를 통해 접근할 수 있는 자바클래스로서 멤버변수와, setter, getter메소드로 이루어져 있다.

(★Point! 자바라는  언어를 쓰지않고도 사용할 수 있는 태그 (<%%>), 기본생성자로만 객체를 생성 할 수 있기 때문에 자바소스에서 객체생성시 초기화작업이 필요하다면 기본생성자에 작성해야한다.)

번호
(위에 이어서)
목적 비교 문법
4 객체생성 자바 빈즈 사용 전 <% MemberVO member = new MemberVO(); %>
자바 빈즈 사용 후 <jsp:userBean class="com.koreait.beans.MemberVO" id="member">
5 setter() 자바 빈즈 사용 전 <% member.setName("홍길동"); %>
자바 빈즈 사용 후 <jsp:setProperty property="name" name="member" value="홍길동">
6 getter() 자바 빈즈 사용 전 <% member.getName(); %>
자바 빈즈 사용 후 <jsp:getProperty property="name" name="member">

- 자바빈즈 규칙

1. 패키지화 :

반드시 패키지 이름을 지정해 주어야 한다. 지정이 없는 default pakage면 나중에 경로 지정시 불가능에 가깝다.

2. 필드 접근자를 private로 설정해야 한다. (메소드를 제외한 필드는 자바빈즈에서 접글할 수 없다.)

3. getter, setter메소드는 puvlic으로 설정해야 한다.

4. 기본 생성자 선언해야 한다.

 

<자바빈즈의 장점>

 - 수많은 파라미터를 자바 빈에 담아 사용/전달 할 수 있기 때문에 폼데이터 처리에 좋다.

 - 위에 설명한 것처럼 <% ..... %>으로 매번 사용하는것보다 빈즈를 사용해서 선언을 해놓고

   이름으로 불러와서 사용하면 되기 때문에 재사용성이 좋다.

 

// MVC모델에서 M과 C의 기능을 모아 

<%@page import="com.koreait.beans.MemberVO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- 클래스 경로에 있는 클래스를 객체로 만들고 이름을 지정해준다.
MemberDAO dao = new MemberDAO()와 같은 의미 -->
<jsp:useBean class="com.koreait.beans.MemberVO" id="vo"/>
<jsp:useBean class="com.koreait.beans.MemberDAO" id="dao"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>자바빈즈 예제</title>
</head>
<body>
	<!-- HTML 주석은 컴파일을 막지 않고 보여지는 부분만 주석처리해준다. -->
	<%-- JSP 주석은 컴파일도 주석처리 된다. --%>
	
	<jsp:setProperty property="name" name="vo" value="한동석"/>
	<jsp:setProperty property="birthday" name="vo" value="12-04"/>
	<% ArrayList<MemberVO> members = dao.select("한동석"); %>
	<table border="1">
		<%for(int i=0; i<members.size(); i++){ %>
		<tr>
			<td><%=members.get(i).getName()%></td>
			<td><%=members.get(i).getBirthday() %></td>
		</tr>
		<%} %>
	</table>
	
	<!-- 위에서 셋한 내용을 가져와서 출력한다. -->
	<jsp:getProperty property="name" name="vo"/>
	<jsp:getProperty property="birthday" name="vo"/>
</body>
</html>
반응형