티스토리 뷰

WEB/DynamicWeb

[JSP] JAVA Beans

춘햄 2021. 4. 23. 14:33

Beans?

 

자바 코드로 작성된 컴포넌트들로 JSP 페이지 내에서 행해지는 연산을 줄이기 위한 방법으로 제공되는 기술.

즉, .java 로 작성된 맴버 변수들을 다른 jsp에서 사용하기 위해 쓰인다.


 

자바 빈즈는 사용하기 어렵지 않지만, 다음과 같은 조건을 반드시 따라야 한다.

 

 1. 모든 변수는 반드시 private

 2. 반드시 생성자가 필요

 3. getter와 setter가 필요하다.

바로 예제를 한번 보자.


예제로 사용되는 MemberBean.java 클래스는 다음과 같다.


◎MemberBean.java

package com.choonham;

public class MemberBean {

	private String name;
	private String userid;
	private String nickname;
	private String pwd;
	private String email;
	private String phone;

	public MemberBean() {

	}

	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;
	}
	
}

 

액션 태그 중 하나이기 때문에 아래와 같이 선언하여 사용한다.

코드를 먼저 보는 게 이해가 더 빠를 수도 있다.


◎useBean.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>

	<jsp:useBean id = "member" class = "com.choonham.MemberBean"></jsp:useBean>
	
	생성된 자바빈의 현재 변수 값 출력
	<br /><br />
	이름: <%= member.getName() %>
	<br/>
	아이디: <%= member.getUserid() %>
	<br/><br/>
	
	자바빈의 맴버 변수에 값을 설정
	<%
		member.setName("춘햄");
		member.setUserid("choonham");
	%>
	
	<br /><br />
	생성된 자바빈의 현재 변수 값 출력
	<br /><br />
	이름: <%= member.getName() %>
	<br/>
	아이디: <%= member.getUserid() %>
	<br/><br/>
	
</body>
</html>

이때, 생성된 Bean 의 id값은 해당 클래스의 인스턴스 맴버 변수의 이름이라고 생각하면 된다. 

 

즉, 위와 같이 액션태그를 이용하여 선언해준 id(member)  값을 활용하여 class의 인스턴스를 제어할 수 있는 것이다.

 

<jsp:useBean id = "member" class = "com.choonham.MemberBean"></jsp:useBean> 

=> MemberBean member = new MemberBean(); 

 

약간 이런 의미이다.

 

위와 같이 get, set을 이용하여 변수를 지정할 수도 있지만, 굳이 java코드로 안들어가고 태그를 이용하여 설정해줄 수도 있는데, 이것이 바로 property 태그이다.


property

property를 이용하여 <% %>를 따로 생성하지 않고 바로 set과 get을 해줄 수 있다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id = "member" class = "com.choonham.MemberBean"></jsp:useBean>
	생성된 자바빈에 태그를 사용하여 값을 설정
	<jsp:setProperty property = "name" name = "member" value = "춘햄"/>
	<jsp:setProperty property = "userid" name = "member"  value = "choonham"/>
	
	<br />
	설정된 값 추출
	<br/>
	이름: <jsp:getProperty property = "name" name = "member"/>
	<br/>
	이름: <jsp:getProperty property = "userid" name = "member"/>
</body>
</html>

 

 


 

'WEB > DynamicWeb' 카테고리의 다른 글

[JSP] EL 표현식 문법과 사용 방법  (0) 2021.04.23
[JSP] Beans - property 쉽게 사용하기  (0) 2021.04.23
[JSP] 세션 활용 예제 <로그인>  (0) 2021.04.23
[JSP] 쿠키와 세션  (0) 2021.04.23
[JSP] Action Tags  (0) 2021.04.22
Comments