-
자바빈 , <jsp:useBean> 액션 태그JSP 2023. 3. 22. 10:32
자바빈
: 속성(데이터) , 변경 이벤트 , 객체 직렬화를 위한 표준
-> 회원의 정보를 받아올 때 정보에 대한 제약을 주기 위함
1. 자바빈 클래스 생성
: JSP 프로젝트 속의 Java Resources 폴더에 MemberInfo 파일을 생성해보자.
- 패키지 생성 후, MemberInfo 파일을 만들고 원하는 데이터의 저장공간을 생성했다.
Source 탭 -> Generate Getter and Setter 를 클릭해서 Getter와 Setter를 자동 생산할 수 있다.
2. <jsp:useBean> 액션태그를 사용해 객체 생성
: 자바빈 객체를 지정할 때 액션태그의 기본 구문
<jsp:useBean id="빈이름" class="자바빈클래스이름" scope="범위" />
id : JSP 페이지에서 자바빈 객체에 접근할 때 사용할 이름을 지정한다.
class : 패키지 이름을 포함한 자바빈 클래스의 완전한 이름을 입력한다.
scope : 자바빈 객체를 저장할 영역을 지정한다. page, request, session, application 중 하나를 값으로 갖고, 기본 값은 page이다.
객체 생성 예제
- 자바빈 생성 예제에서 만들었던 MemberInfo를 객체로 만들어서 request 기본 객체에 저장한다.
또한, Id 와 Name 정보를 set 함수를 이용해 자바빈에 저장한다.
- useObject를 직접 실행하면, request 기본 객체에 member 속성이 존재하지 않기 때문에, 새로운 MemberInfo 클래스의 객체를 생성한다.
이 경우 객체의 데이터 초기화를 하지 않았기 때문에 Name과 ID 에 null 값이 나온다.
- 액션 태그의 class 속성 대신에 type을 넣을 수도 있다.
<jsp:useBean id="빈이름" type="자바빈클래스이름" scope="scope" /> -> type 속성을 사용하면 지정한 영역에 이미 객체가 존재한다고 가정한다 위의 코드를 풀어서 해석하면 다음과 같다 MemberInfo member = (MemberInfo)request.getAttribute("member"); if (member == null) { // 에러를 발생시킨다. } 즉, request 기본 객체의 member 속성에 이미 Memberinfo 객체가 존재한다고 가정하며, 존재하지 않는다면 MemberInfo 객체를 새로 생성하지 않고 에러를 발생시킨다.
3. <jsp:setProperty> 와 <jsp:getProperty>
: 해당 자바빈 객체의 프로퍼티를 지정하거나 가져올 수 있다.
set 프로퍼티 <jsp:setProperty name="자바빈" property="프로퍼티이름" value="값" /> -> 프로퍼티의 값을 지정할 수 있다. <jsp:setProperty name="자바빈" property="프로퍼티이름" param="파라미터 명" /> -> value 속성 대신 param 속성을 사용할 경우, 파라미터의 값을 프로퍼티의 값으로 지정한다 <jsp:setProperty name="자바빈" property="*" /> -> 각 프로퍼티의 값을 같은 이름을 갖는 파라미터의 값으로 지정한다 ( 파라미터와 프로퍼티를 한번에 연결할 수 있다. ) get 프로퍼티 <jsp:getProperty name="자바빈" property="프로퍼티이름" />
set, getProperty 예제)
- form 태그의 action 속성으로 processJoiing.jsp 로 데이터를 보내고 이동한다.
- setProperty의 property = "*" 로 파라미터의 이름이 같은 요소들끼리 쉽게 데이터를 저장했다.
- request.setCharacterEncoding("utf-8"); 로 form으로 부터 받은 한글 텍스트가 깨지지 않게 만들었다.
'JSP' 카테고리의 다른 글
세션 (session) (0) 2023.03.22 쿠키 (cookie) (0) 2023.03.22 <jsp:forward> 액션 태그 사용법 (0) 2023.03.21 include 디렉티브 (0) 2023.03.21 <jsp:param> 페이지에 파라미터 추가 (0) 2023.03.21