본문 바로가기
IT/JSP

[JSP] - 26. 자바 빈(JavaBeans), <jsp:useBean> 액션 태그 사용법

by 차이나는 개발자 2020. 7. 27.
728x90
반응형

#자바 빈(JavaBeans), <jsp:useBean> 액션 태그 사용법

 

 

#자바 빈(JavaBeans)

-속성(데이터), 변경 이벤트, 객체 직렬화를 위한 표준입니다.

-Java 언어의 데이터(속성)와 기능(메서드)으로 이루어진 클래스이다.

-반복적인 작업을 효율적으로 하기 위해 빈을 사용한다.

-디자인 부분과 비즈니스 로직 부분을 분리하고, 복잡한 JSP코드들을 줄이고,

프로그램의 재사용성을 증가시키기 위해서 사용한다.

 

 

-사용법

1. 멤버 변수는 private + getter/setter로 작성해야 한다.
2. 기본 생성자가 필요하다
3. Serializable는 객체 직렬화할 때 필요하다.

 

 

#<jsp:useBean> 액션 태그

-데이터를 업데이트(수정)하고, 읽어오는 역할을 한다.

<jsp:useBean id="id" class="classPath.Bean" scope="session" />

 

id : 자바빈즈를 식별하기 위한 이름이다.

class : 패키지 이름을 포함한 자바빈즈 이름이다. (인수 없는 기본 생성자가 필요하며 추상 클래스는 사용할 수없다.

scope : 자바빈즈가 저장되는 영역이다.

 

 

Scope

-page : 생성된 페이지 내에서만 사용 가능하다. (기본값), 페이지가 바뀌면 빈 객체가 공유 유지가 되지 않는다.

-request : request요청을 받고 처리를 완료할 때까지 생존되는 scope이다.

-session : 클라이언트당 하나씩 할당되는 영역이다. 클라이언트가 브라우저를 종료하기 전까지 유지된다.

-application : 사이트 전체의 범위를 가지며, 서버가 종료되기 전까지 계속 유지된다.

 

 

예제1)

 

-결과 화면

 

 

1.MemberInfo.java

package kr.ac.green;
 
import java.util.Date;

public class MemberInfo {
	private String id;
	private String password;
	private String name;
	private Date registerDate;
	private String email;
	
	public MemberInfo() {
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Date getRegisterDate() {
		return registerDate;
	}

	public void setRegisterDate(Date registerDate) {
		this.registerDate = registerDate;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	
}

 

 

2.makeObject.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="member" scope="request" class="kr.ac.green.MemberInfo" />
<%
	member.setId("hero");
	member.setName("Jeff");
%>
<jsp:forward page="/useObject.jsp" />

 

 

3.useObject.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="member" scope="request" class="kr.ac.green.MemberInfo" />    
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%=member.getName() %>(<%=member.getId() %>) 회원님 안녕하세요.
</body>
</html>

 

 

#<jsp:setProperty> 액션 태그와 <jsp:getProperty> 액션 태그

 

#<jsp:setProperty>

-업데이트(수정)

-데이터 값을 설정할 때 사용한다.

 

-속성

<jsp:setProperty name="member" property="id" value="hong" />

name : 자바빈즈 식별자이다.

property : 자바빈즈 프로퍼티 이름이다. (객체의 멤버변수)

property *표시 : 멤버변수와 이름이 같은 파라미터가 있으면 전부 매치를 시켜준다

value : 변경할 자바빈즈의 프로퍼티 값이다.

param : 자바빈즈의 프로퍼티 값을 전달하는 요청 파라미터의 이름이다. (value와 동시에 사용이 불가능하다.)



#<jsp:getProperty>

-읽기

-데이터 값을 가져올 때 사용한다.

 

-속성

<jsp:getProperty name="member" property="name />

name : 자바빈즈 식별자이다.

property : 자바빈즈 프로퍼티 이름이다.

 

 

예제2)

-시작 화면

-결과 화면

 

 

1.membershipForm.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<form action="processJoining.jsp" method="post">
		<table border="1" cellpadding="0" cellspacing="0">
			<tr>
				<td>아이디</td>	
				<td colspan="3"><input type="text" name="id" size="10"></td>
			</tr>
			<tr>
				<td>이름</td>
				<td><input type="text" name="name" size="10"></td>
				<td>이메일</td>
				<td><input type="text" name="email" size="10"></td>
			</tr>
			<tr>
				<td colspan="4" align="center">
				<input type="submit" value="회원가입">
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

 

 

2.processJoining.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<% 
	request.setCharacterEncoding("euc_kr");
%>    
<jsp:useBean id="memberInfo" class="kr.ac.green.MemberInfo" />
<jsp:setProperty name="memberInfo" property="*" />
<jsp:setProperty name="memberInfo" property="password" value="<%= memberInfo.getId() %>" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<table width="400" border="1" cellpadding="0" cellspacing="0">
		<tr>
			<td>아이디</td>
			<td><jsp:getProperty property="id" name="memberInfo"/></td>
			<td>암호</td>
			<td><jsp:getProperty property="password" name="memberInfo"/></td>
		</tr>
		<tr>
			<td>이름</td>
			<td><jsp:getProperty property="name" name="memberInfo"/></td>
			<td>이메일</td>
			<td><jsp:getProperty property="email" name="memberInfo"/></td>
		</tr>
	</table>
</body>
</html>

 

 

 

728x90
반응형

댓글