JSP - 자바빈즈(JavaBeans)

imjingu·2023년 9월 3일
0

개발공부

목록 보기
456/481

JSP의 표준 액션 태그로 접근할 수 있는 자바 클래스로서 값을 가지는 속성(멤버변수)과 값을 설정하는 메소드(setter) 값을 추출하는 메소드(getter)로 이루어져 있다.
자바빈즈는 하나의 JSP 페이지에 종속적으로 사용되는 것이 아니라, 여러 JSP 페이지에서 사용될 수 있다.
자바빈즈는 다른 자바 클래스와 마찬가지로 자바 객체이다.

장점
자바 빈즈를 이용하면 JSP 페이지가 복잡한 자바 코드로 구성되는 것을 피한다.
JSP 페이지에는 HTML코드와 쉽고 간단한 자바코드만. 어려운 코드를 분리.
여러 응용 프로그램에서 재사용 가능(마치 상속하는것 처럼?)

JSP 페이지 내에서 자바빈의 활용은 표준 액션 태그로 수행함.
<jsp:useBean> - JSP와 연관시켜 자바 빈즈 생성
<jsp:setProperty> - 생성된 자바 빈즈의 객체를 이용해 setter에 속성 값을 전달
<jsp:getProperty> - 생성된 자바 빈즈의 객체를 이용해 getter에 속성 값을 반환
가 JSP 자바빈즈를 활용할 때 사용하는 표준 액션 태그이다.

자바빈즈 Calculator 를 생성하고 useBean 액션 태그에 Calculator 클래스를 사용하여 숫자 출력하기
1) 자바빈즈로 Calculator 클래스를 사용하도록 useBean 액션 태그를 작성
2) useBean 액션 태그에 id 속성 값을 통해 Calculator 클래스의 process() 메서드를 호추하여
반환된 결과 값을 out 내장객체 변수를 통해 출력하도록 스크립틀릿 태그를 작성

javaBean.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	 <jsp:useBean id="bean" class="user.Calculator" />
	 <%
	 	int m = bean.process(5);
	 	out.print("5의 3제곱 : " + m);
	 %>
</body>
</html>

package user;

public class Calculator {
	public int process(int n) {
		return n*3;
	}
}

자바빈즈 Person을 생성하고 useBean 액션 태그에 Person 클래스를 사용하여 아이디와 이름 출력하기
1) 자바빈즈로 Person 클래스를 사용하도록 useBean 액션 태그를 작성
2) useBean 액션 태그에 id 속성값을 통해 Person 클래스의 getId(), getName() 메서드를 각각 호출하여
반환된 결과 값을 출력하도록 표현문 태그로 작성

javaBean2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	 <jsp:useBean id="person" class="user.Person" scope="request" />
	 <p> 아이디 : <%=person.getId() %>
	 <p> 이름 : <%=person.getName() %>
</body>
</html>
package user;

public class Person {
	private int id = 20181004;
	private String name = "라이언";
	
	public Person() {
		
	}

	public int getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

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

자바빈즈 Person을 생성하고 useBean 액션 태그에 Person 클래스를 사용하여 아이디와 이름 출력하기
1) useBean 액션 태그에 id 속성 값을 통해 Person 클래스의 setId(), setName() 메서드를 호출하여 새로운 값을 저장하도록 스크립틀릿 태그를 작성
2) 외부파일 useBean03.jsp의 내용을 포함하도록 include 액션 태그의 page 속성을 작성

javaBean3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	 <jsp:useBean id="person" class="user.Person" scope="request" />
	 <p> 아이디 : <%=person.getId() %>
	 <p> 이름 : <%=person.getName() %>
	 	<%
	 		person.setId(20182005);
	 		person.setName("춘식이");
	 	%>
	 	<jsp:include page="javaBean2.jsp" /> <%-- 이전에 출력만 했던 파일을 불러옴 --%>
</body>
</html>

setProperty 액션 태그에 자바빈즈 Person으로 아이디와 이름을 설정하여 출력하기
1) 자바빈즈로 Person 클래스를 사용하도록 useBean 액션 태그를 작성
2) useBean 액션 태그의 id 속성 값을 통해 자바빈즈 Person의 프로퍼티 id와 name에 값을 저장하도록 setProperty 액션 태그를 작성
3) useBean 액션 태그의 id 속성 값을 통해 Person 클래스의 getId(), getName() 메서드를 호출하여 반환된 값을 out 내장 객체 변수를 이용하여 출력하도록 스크립틀릿 태그를 작성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	 <jsp:useBean id="person" class="user.Person" scope="request" />
	 <jsp:setProperty name="person" property="id" value="20212010" />
	 <jsp:setProperty name="person" property="name" value="박동수" />
	 <p> 아이디 : <% out.println(person.getId()); %>
	 <p> 이름 : <% out.println(person.getName()); %>
</body>
</html>

0개의 댓글