자바 빈과 액션 태그
자바 빈은 단순히 데이터를 저장만 하는 것이 아니고 자바의 데이터의 은닉(data hiding)이란 개념을 사용합니다.
데이터의 은닉은 객체 외부에서 데이터를 직접 다루면 데이터가 손상될 수 있으므로 이를 막기 위해서 나온 객체지향의 개념입니다.
데이터를 은닉하기 위해서 데이터는 private 접근 제한자를 사용하고 public 접근제한자로 공개된 메소드를 통해서만 접근할 수 있도록 합니다.
자바 빈 클래스 만들기
자바 빈 클래스 정의하기
<!--긁지않은개발자-->
public class MemberBean { //자바 빈 클래스 정의
}
회원 정보를 저장할 자바 빈 클래스는 회원을 의미하는 Member 뒤에 Bean을 덧붙여 다른 클래스와 차별화를 두기도 하지만 꼭 그럴 필요는 없습니다. 개발자에 성향에 따라 Member라는 이름을 사용하기도 합니다
자바 빈 관련 액션 태그 살피기
액션 태그의 종류 | 설명 |
<jsp:useBean> | 자바 빈을 생성합니다. |
<jsp:getProperty> | 자바 빈에서 정보를 얻어옵니다. |
<jsp:setProperty> | 자바 빈에 정보를 저장합니다. |
자바 빈 객체 생성하는 <jsp:useBean> 액션 태그
<jsp:useBean> 액션 태그는 jsp와 자바 빈을 연결하기 위한 자바 빈 객체를 생성합니다.
<!--긁지않은개발자-->
<%@ page import="com.saeyan.javabeans.MemberBean" %>
<%
MemberBean member=new MemberBean();
%>
import 속성을 갖는 page 지시자를 추가하지 않고 길게 기술해 보았습니다.
<!--긁지않은개발자-->
<%
com.saeyan.javabeans.MemberBean member=new com.saeyan.javabeans.MemberBean();
%>
자바 빈 객체 생성하는 <jsp:useBean> 액션 태그
자바에서는 new 다음에 클래스(com.saeyan.javabeans.MemberBean)명을 기술하여 객체를 생성합니다.
이렇게 생성한 객체는 레퍼런스(참조) 변수(member)로 접근할 수 있습니다.
다음은 레퍼런스 변수(member)로 이름과 아이디를 얻어오기 위해서 getter를 호출한 예입니다.
<!--긁지않은개발자-->
<%=member.getName()%>
<%=member.getUserid()%>
다음은 레퍼런스 변수(member)로 이름과 아이디에 새로운 값을 설정하기 위해서 setter를 호출한 예입니다.
<!--긁지않은개발자-->
<%
member.setName("전수빈");
member.setUserid("pinksunbin");
%>
자바 빈 객체 생성하는 <jsp:useBean> 액션 태그
JSP에서 자바 빈 객체를 생성하기 위해서는 <jsp:useBean> 액션 태그를 사용합니다. 다음은 <jsp:useBean> 액션 태그의 기본 형식입니다.
<!--긁지않은개발자-->
<jsp:useBean class=“클래스 폴 네임”
id="빈이름"
[scope="범위"] />
형식을 언급하면서 []이 나오는데 []으로 둘러싸인 부분은 생략 가능한 부분입니다.
<jsp:useBean> 액션 태그로 객체를 생성하기 위해서는 class 속성에 패키지를 포함한 자바 빈 클래스의 풀 네임을 기술해야합니다. 그리고 id 속성은 새롭게 생성하는 자바 빈 객체의 이름을 기술합니다.
scope 속성에는 자바 빈 객체가 사용되는 유효 범위를 지정하기 위해서 page, request, session, application 중 하나를 사용해야 합니다.
scope 속성 값의 종류와 의미
scope 속성 값 | 의미 |
page | 자바 빈은 생성된 페이지 내에서만 접근되어 사용 |
request | 자바 빈이 생성된 요청을 수행하는 페이지들에서 사용 |
session | 자바 빈이 생성된 세션에서 요청을 처리하는 페이지들에서 사용 |
application | 자바 빈이 생성된 응용 프로그램에 포함된 모든 페이지들에서 사용 |
scope 속성 값을 page로 설정하면 해당 페이지에서만 자바 빈 객체를 사용할 수 있습니다.
<!--긁지않은개발자-->
<jsp:useBean class="com.saeyan.javabeans.MemberBean" id="member" scope="page" />
요청 페이지에서까지 자바 빈 객체를 사용하기 위해서는 다음과 같이 scope 속성 값을 request로 설정합니다.
<!--긁지않은개발자-->
<jsp:useBean class="com.saeyan.javabeans.MemberBean" id="member" scope="request" />
5장에서 학습한 세션에 어트리뷰트 값을 추가하여 브라우저가 닫히기 전까지 자바 빈 객체를 계속 사용할 수 있으려면 scope 속성 값을 session으로 설정합니다.
<!--긁지않은개발자-->
<jsp:useBean class="com.saeyan.javabeans.MemberBean" id="member" scope=“session" />
톰캣을 restart시켜 서버를 재 시작하기 전까지 자바 빈 객체를 계속 사용하려면 scope 속성 값을 application으로 설정합니다.
<!--긁지않은개발자-->
<jsp:useBean class="com.saeyan.javabeans.MemberBean" id="member" scope="application" />
만일 scope 속성을 생략하면 page가 기본적으로 설정됩니다.
<!--긁지않은개발자-->
<jsp:useBean class="com.saeyan.javabeans.MemberBean" id="member"/>
scope 속성을 생략한 채 생성한 자바 빈 객체는 해당 페이지에서만 사용가능하고 다른 페이지로 이동하였을 경우에는 자바 빈 객체를 사용할 수 없게 됩니다.

'JSP > JSP 정리' 카테고리의 다른 글
[JSP] Mybatis, ibatis차이점과 사용방법 (0) | 2023.06.07 |
---|---|
[JSP] JSP EL 표현식과 문법 사용법 (0) | 2023.06.05 |
[JSP] 쿠키(Cookie)와 세션(session) (0) | 2023.06.04 |
[JSP] 서블릿(Servlet)이란? (0) | 2023.06.02 |
[JSP] JSP 액션태그 (0) | 2023.06.01 |