본문 바로가기
수업 내용/[JSP] JSP

[JSP] 05. action bean

by 프롯 2023. 5. 19.

자바를 배울 때의 인터페이스와 비슷한 개념이다.

사용하는 변수를 미리 설정하고 그 변수들의 getter/setter 를 만든 파일이다.

 (getter/setter는 source 에서 자동완성이 가능하다.)

 

만들어진 빈(bean) 파일의 변수를  JSP 파일에서 사용할 수 있다.

 

 

VO (Value Object) == DTO (Data Transfer Object)
1. DB와 통신하기 위해서 하나의 행을 하나의 객체로 생성하는 것
2. 필드는 DB 테이블의 컬럼명과 같은 이름을 사용한다.

(사실상 둘이 다를건 없다.)

 

자바 빈 사용 방법
1. 특정 패키지에 자바빈을 만든다.
2. 자바빈을 생성한다.
<jsp:useBean id = "별명" class="패키지.자바클래스명" scope="생명주기"/>
3. 자바빈에 값을 저장한다.
<jsp:setProperty property="*" name="별명" />
4. 자바빈의 값을 사용한다.
<jsp:getProperty property="파라미터명" name="별명"/>

 

 

package org.joonzis.bean;

public class PersonVO {
	private String name;
	private int age;
	private double height;
	private String addr;
	
	public PersonVO() {}

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	public String getAddr() {
		return addr;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}
	
	

}

VO 생성

자바빈을 생성하였으니 이제 사용해 보자

 

 

 

 

 

<%@ 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>
	<form action="Ex04_useBean2.jsp">
		<div>이름 <input type="text" name="name"></div>
		<div>나이 <input type="text" name="age"></div>
		<div>키 <input type="text" name="height"></div>
		<div>주소 <input type="text" name="addr"></div>
		<input type="submit" value="전송">
	</form>

</body>
</html>

데이터 set

 

 

 

<%@page import="org.joonzis.bean.PersonVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");
	PersonVO vo = new PersonVO();
	vo.setName(request.getParameter("name"));
	vo.setAge(Integer.parseInt((request.getParameter("age"))));
	vo.setHeight(Double.parseDouble((request.getParameter("height"))));
	vo.setAddr(request.getParameter("addr"));

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	 <jsp:useBean id="mb" class="org.joonzis.bean.PersonVO"/>
	 <jsp:setProperty property="*" name="mb"/>
	 
	 <h1>
	 	이름 : <jsp:getProperty property="name" name="mb"/><br>
	 	나이 : <jsp:getProperty property="age" name="mb"/><br>
	 	키 : <jsp:getProperty property="height" name="mb"/><br>
	 	주소 : <jsp:getProperty property="addr" name="mb"/>
	 </h1>
</body>
</html>

데이터 get

변수 이름이 같다면 자동으로 연결된다. (위에 굳이 java 코드를 쓰지 않아도)