일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 컴퓨터비전
- 파이썬
- 딥러닝
- html/css
- 정보처리기사실기
- 자바
- 파이썬라이브러리
- 정수와유리수
- 데이터분석
- 데이터입출력구현
- JSP/Servlet
- 연습문제
- CSS
- 영어공부
- 컴퓨터구조
- 코딩테스트
- 데이터베이스
- 머신러닝
- 운영체제
- 자바 실습
- 텍스트마이닝
- 혼공머신
- numpy/pandas
- 중학1-1
- 중학수학
- pandas
- 정보처리기사필기
- C++
- CNN
- SQL
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
자바 빈과 액션 태그 2 - 자바 빈 관련 액션 태그 본문
이 소단원에서도 개념 학습할 부분이 많이 있다. 그래도 차근차근 학습해볼 것이다.
자바 빈 관련 액션 태그
자바 빈의 의미와 작성 방법을 살펴보았으므로 이제 JSP에서 어떻게 활용하는지 알아보겠다. JSP에서는 자바 빈을 사용하기 위한 액션 태그를 다음과 같이 제공한다.
1. 자바 빈 객체를 생성하는 <jsp:useBean> 액션 태그
JSP와 자바 빈을 연결하기 위한 자바 빈 객체를 생성한다. 자바에서 객체를 생성하는 다음 코드와 동일한 동작을 한다.
<%@ page import = "com.MemberBean" %>
<%
MemberBean member = new MemberBean();
%>
page 지시자에 import 속성을 추가하면 간단하게 객체 생성을 할 수 있다. 하지만 액션 태그에서 빈 객체를 생성할 경 우에는 풀네임 형식(패키지를 포함한 형태의 클래스 이름)으로 적어 주어야 한다. page 지시자를 추가하지 않고 서술하면 다음과 같이 긴 코드가 된다.
<%
com.MemberBean member = new com.Memberbean();
%>
자바에서는 new 다음에 클래스명을 기술하여 객체를 생성한다. 이렇게 생성한 객체는 레퍼런스(참조) 변수로 접근할 수 있다. 다음은 레퍼런스 변수로 이름과 아이디를 얻어오기 위한 getter 호출 예이다.
<%= member.getName() %>
<%= member.getUserid() %>
기본 형식에서 [ ]는 생략 가능한 부분이다. <jsp:useBean> 액션 태그로 객체를 생성하기 위해서는 class 속성에 패키지를 포함한 자바 빈 클래스의 풀 네임을 기술해야 한다. id 속성은 새롭게 생성하는 자바 빈 객체의 이름을 기술한다.
scope 속성에는 자바 빈 객체가 사용되는 유효 범위를 지정하기 위해 page, request, session, application 중 하나를 사용해야 한다.
다음은 <jsp:useBean> 액션 태그를 사용하여 객체를 생성하는 예이다.
자바 언어와 마찬가지로 JSP에서 자바 빈 객체를 생성하기 위해서는 클래스를 지정해야 한다. class 다음에는 자바 빈 클래스 이름을 기술한다. 특정 패키지에 존재하는 클래스일 경우에는 패키지 이름까지 기술한다.
class 속성 값은 자바에서 객체를 생성할 때 기술한 클래스 이름과 매핑된다.
scope 속성은 <jsp:useBean> 태그에 의해 생성된 객체가 사용될 수 있는 유효 범위를 결정한다.
톰캣을 restart시켜 서버를 재시작하기 전까지 자바 빈 객체를 계속 사용하려면 scope 속성 값을 application으로 설정한다.
scope 속성을 생략한 채 생성한 자바 빈 객체는 해당 페이지에서만 사용 가능하고 다른 페이지로 이동하였을 경우에는 자바 빈 객체를 사용할 수 없게 된다.
자바 빈 객체 생성하기(useBean 액션 태그)
객체 생성하기 전에는 아무것도 없는 null이었는데 생성 후에는 정보가 입력되어 제대로 출력이 되고 있다.
2. 자바 빈에서 정보를 얻어오는 <jsp:getProperty> 액션 태그
다음은 회원의 이름을 얻기 위해 getName()을 호출한 예이다.
<%= member.getName() %>
JSP에서 getter를 호출하기 위해서 스크립트릿 안에 자바 코드를 기술해야 한다. 다음은 회원의 이름을 얻기 위해 getName()을 호출하는 대신 <jsp:getProptery> 액션 태그를 사용한 예이다.
<jsp:getProperty name = "member" property = "name"/>
JSP에서는 getter를 위와 같이 호출하기 보다는 액션 태그인 <jsp:getProptery>를 사용한다. 왜냐하면 JSP에서 HTML 태그와 자바 코드를 혼용하면 코드가 지저분해지기 때문이다. JSP 페이지에서는 HTML 태그와 함께 액션 태그를 사용하는 것이 코드가 깔끔해져서 가독성이 높아진다.
<jsp:getProperty> 액션 태그는 자바 빈 객체 필드에 저장된 값을 알려준다.
<jsp:useBean> 액션 태그의 id 값과 일치하는 값인 "member"를 <jsp:getProperty> 태그의 name 속성 값으로 기술하여 <jsp:useBean> 액션 태그로 생성한 자바 빈 객체에 접근한다. 이렇게 접근하면 자바 빈 객체의 정보를 얻어올 수 있다.
property 속성은 자바 빈을 구성하는 여러 개의 필드 값을 알려주기 위한 여러 개의 getter 중에 어떤 것을 호출하는지 구분하기 위해서 존재한다.
property에 설정한 값이 name이면 첫 글자만 대문자로 지정하여 get 다음에 기술한다. 자바 코드와 매핑시켜 보면 이해하기 쉽다.
<jsp:getProperty> 액션 태그의 name 속성 값은 메소드 앞에 붙은 레퍼런스 변수 이름인 member를 의미한다. property 속성 값은 get 다음에 기술된 Name의 첫 글자만 소문자로 변경한 것이다.
학습을 마치고
분량이 너무 많아서 하나 남은 액션 태그에 대한 설명은 다음 포스트에서 이어서 학습하기로 했다. 그리고 이제 얼마 남지 않았다. 회원 정보를 처리하는 부분만 실습하면 이 단원은 끝나게 된다. 아직 수업을 들어야 할 게 남아있지만 말이다.
자바 빈이 무엇인지 액션 태그는 어떨 때 사용하는지 등을 배울 수 있었다.
'웹 · 앱 개발 > JSP & Servlet' 카테고리의 다른 글
자바 빈과 액션 태그 4 - scope 영역에 대해서 (0) | 2024.08.30 |
---|---|
자바 빈과 액션 태그 3 - 자바 빈 관련 액션 태그와 자바 빈으로 회원 정보 처리하기 (0) | 2024.08.30 |
자바 빈과 액션 태그 1 - 자바 빈과의 첫 데이트와 자바 빈 클래스 만들기 (0) | 2024.08.30 |
쿠키와 세션 7 - 도전 문제 풀어보기 (0) | 2024.08.30 |
쿠키와 세션 6 - 단원 마무리 퀴즈 문제 풀기 (0) | 2024.08.29 |