JSP 기본 06

이정우·2021년 10월 26일
1

JSP

목록 보기
8/10

자바 빈

예를 들어 홈페이지에서 이름 주민번호 등의 정보를 개별적으로 서버로 받을수도 있지만 한 개의 뭉텅이로 받을 수도 있다. 자바 빈은 이러한 정보의 덩어리로 데이터 저장소라고도 불리운다. 즉 프로그램에서 사용되는 여러 정보를 여러 개의 변수로 저장하고 필요할 때마다 사용하기보다는 자바 빈을 사용해서 필요한 정보를 객체를 구성하는 멤버로 기술해 두고 한 번에 접근해서 사용이 가능하다. 또한 자바 빈은 데이터 은닉성을 갖는다(private,getter, setter).

액션 태그를 사용한 자바 빈

자바 빈은 클래스로써 필드와 메소드(getter, setter)로 구성되어 있다.

<jsp : useBean> 자바 빈 생성
<jsp : getProperty> 자바 빈에서 정보를 얻어온다.
<jsp : setProperty> 자바 빈에서 정보를 저장한다.

패키지 선언

자바 빈을 사용하기 위한 클래스는 패키지를 주어 정의한다. 패키지란 유사한 기능의 클래스를 모아 라이브러리로 만드는 것이다.
패키지 이름은
package 도메인이름.폴더이름.클래스이름 이 정석적이다.
com.saeyan(도메인 이름).javabeans(폴더 이름).MemberBean(클래스 이름)
도메인 이름 + 폴더 이름 => 패키지 이름

< jsp : usebean>

<jsp:useBean id="member" class="com.saeyan.javabeans.MemberBean"/>
class =패키지 경로 + 자바빈 클래스 위치
id = 새롭게 생성하는 자바 빈 객체의 이름 + scope = "page"
써놓진 않았지만 추가적으로 스코프를 통해 데이터 유효 기간을 설정 가능. page < request < session < application 이 있음. 생략 가능. 생략 시 제일 작은 단위인 page가 디폴트 값으로 설정됨.

<%= member.getName() %> //getter불러오기
<%member.setName("이정우");%> //값 저장하기.

하지만 jsp에서는 < jsp : getProperty name = "member" property = "name"/>처럼 getProperty을 사용한다. 그 이유는 html와 java 코드를 jsp에서 혼용하다보면 코드가 지저분해지고 가독성이 떨어지기 때문이다.
name 은 빈이름이고(useBean의 id와 똑같은 이름) property는 프로퍼티 이름이 들어간다.
property에는 여러 개의 필드 값을 알려주는 getter 메서드를 불러온다. 참고로 get을 삭제하고 첫 글자를 소문자로 하면 된다. getName이면 name을 적어주면 된다.

위의 방법 대신 jsp액션 태그를 사용한 방법. 결과는 위와 같다.

<jsp:setProperty name="member" property="name" value="이정우"/> //값 저장하기.
<jsp:getProperty name="member" property="name" /> //getter불러오기

실제 작성 후..

원래는 jsp와 서블릿을 통해 데이터를 입력 받고 반환해주던걸 jsp 파일 한 두개로 전부 처리가 가능. 처음에는 변수들을 모아서 쓰는게 무슨 의미가 있나 싶었는데 의외로 상당히 편하게 사용 가능하다.

출처 : 국비 교육

profile
프로그래밍 공부 중!

0개의 댓글