JSP/JSP 정리

[JSP] JSP 자바 빈과 액션 태그

h0-0cat 2023. 6. 4. 23:55
728x90

자바 빈과 액션 태그

 

자바 빈은 단순히 데이터를 저장만 하는 것이 아니고 자바의 데이터의 은닉(data hiding)이란 개념을 사용합니다.

데이터의 은닉은 객체 외부에서 데이터를 직접 다루면 데이터가 손상될 수 있으므로 이를 막기 위해서 나온 객체지향의 개념입니다.

데이터를 은닉하기 위해서 데이터는 private 접근 제한자를 사용하고 public 접근제한자로 공개된 메소드를 통해서만 접근할 수 있도록 합니다.

 

자바 빈 클래스 만들기

자바 빈도 역시 클래스입니다.
그러므로 자바 빈 역시 클래스를 구성하는 요소인 필드와 메소드로 구성됩니다.
더 구체적으로 이야기하면 자바 빈은 필드와 getter/setter 메소드를 하나의 쌍으로 갖는 특별한 클래스입니다.
, 자바 빈은 클래스의 특별한 형태라 할 수 있습니다.
자바 빈은 서블릿에서만 사용되는 기술이 아닙니다.
자바에서 사용되는 개념인데 그것을 서블릿에서 가져다 사용하는 것입니다.

 

 

자바 빈 클래스 정의하기

프로그래밍을 위해서는 다양한 로직이 필요한데 자바 빈은 단순히 데이터를 저장할 목적으로 사용한 클래스입니다.
자바 빈 클래스는 자바에서 클래스 선언을 위해서 사용하는 예약어인 class로 다음과 같이 정의합니다.
<!--긁지않은개발자-->
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 속성을 생략한 채 생성한 자바 빈 객체는 해당 페이지에서만 사용가능하고 다른 페이지로 이동하였을 경우에는 자바 빈 객체를 사용할 수 없게 됩니다.

 

 

+

728x90

'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