Java Bean
데이터 저장소, 필요한 정보를 객체를 구성하는 멤버로 기술해 두고 한꺼번에 데이터에 접근해서 사용
객체 외부에서 데이터를 직접 다루면 데이터 손상 등의 문제가 발생할 수 있어 데이터 은닉(Data Hiding) 개념을 사용
데이터는 private 접근 제한자를 사용하고, public 접근 제한자로 공개된 메소드를 통해서만 데이터에 접근하도록 함
실습
MemberBean.java
package com.syslab.javabeans;
public class MemberBean {
private String name;
private String userid;
private String nickname;
private String pwd;
private String email;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
member 객체를 생성하는 코드
<%@ page import="com.syslab.javabeans.MemberBean" %>
<% MemberBean member = new MemberBean(); %>
위와 동일한 의미로 import 지시자를 사용하지 않고 사용하는 경우
<% com.syslab.javabeans.MemberBean member = new com.syslab.javabeans.MemberBean(); %>
이제 member 객체를 참조(reference) 변수로 접근할 수 있다.
<%= member.getName() %>
<%= member.getUserid() %>
Java Bean Action Tag 활용
<jsp:useBean> - 자바빈을 생성
<jsp:getProperty> - 자바빈에서 정보를 얻어오기
<jsp:setProperty> - 자바빈에서 정보를 저장하기
<jsp:useBean class="com.syslab.javabeans.MemberBean" id="memberParam" scope="page" />
scope는 page, request, session, application 중 하나의 유효범위를 목적에 맞게 사용해야 한다.
scope 속성을 생략하는 경우 page가 기본적으로 설정된다.
위와 동일한 의미는 아래와 같다.
<%
com.syslab.javabeans.MemberBean member = new com.syslab.javabeans.MemberBean();
pageContext.setAttribute("memberParam", member);
%>
<jsp:useBean> 에서 id="memberParam" 부분이 객체에 접근하기 위한 참조변수와 동일한 역할을 하게 된다.
useBeanLab.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaBean Create</title>
</head>
<body>
<jsp:useBean id="memberParam" class="com.syslab.javabeans.MemberBean" />
JavaBean 객체 생성 후, 현재 저장된 정보 출력 <br><br>
이름 : <%= memberParam.getName() %>,
닉네임 : <%= memberParam.getNickname() %>
<br><hr>
JavaBean 객체 변경 후, 현재 저장된 정보 출력 <br><br>
<%
memberParam.setName("홍길동");
memberParam.setNickname("syslab");
%>
이름 : <%= memberParam.getName() %>,
닉네임 : <%= memberParam.getNickname() %>
</body>
</html>
자바빈에서 정보를 얻어오는 <jsp:getProperty> 액션 태그 사용하기
<%= memberParam.getName() %>
위와 동일한 의미는 아래와 같다.
<jsp:getProperty name="memberParam" property="name">
name 속성에는 앞서 <jsp:useBean> 태그에서 명시했던 id와 반드시 일치해야 한다.
property 속성에 메소드 이름에서 get다음에 나오는 첫글자를 소문자로 바꾸어 property 속성값으로 적어야 한다. (매핑구조)
자바빈에서 정보를 설정하는 <jsp:setProperty> 액션 태그 사용하기
<% memberParam.setName("홍길동"); %>
위와 동일한 의미는 아래와 같다.
<jsp:setProperty name="memberParam" property="name" value="홍길동" />
name 속성에는 앞서 <jsp:useBean> 태그에서 명시했던 id와 반드시 일치해야 한다.
property 속성에 메소드 이름에서 set다음에 나오는 첫글자를 소문자로 바꾸어 property 속성값으로 적어야 한다. (매핑구조)
propertyLab.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaBean Create</title>
</head>
<body>
<jsp:useBean id="memberParam" class="com.syslab.javabeans.MemberBean" />
JavaBean 객체 생성 후, 현재 저장된 정보 출력 <br><br>
이름 : <jsp:getProperty name="memberParam" property="name" />,
닉네임 : <jsp:getProperty name="memberParam" property="nickname" />
<br><hr>
JavaBean 객체 변경 후, 현재 저장된 정보 출력 <br><br>
<jsp:setProperty name="memberParam" property="name" value="홍길동" />
<jsp:setProperty name="memberParam" property="nickname" value="syslab" />
이름 : <jsp:getProperty name="memberParam" property="name" />,
닉네임 : <jsp:getProperty name="memberParam" property="nickname" />
</body>
</html>
'#001 프로그래밍 > JSP' 카테고리의 다른 글
JSP & Servlet -- scriptlet, expression, EL 차이점 (0) | 2024.01.13 |
---|---|
JSP & Servlet --03 HTTP GET/POST 호출 실습 (0) | 2023.12.24 |
JSP & Servlet --02 JSP 개념 (1) | 2023.12.23 |
JSP & Servlet --01 서블릿 개념 (2) | 2023.12.23 |