Java Bean

이시혁·2022년 7월 20일
0

java Bean 개요

자바로 작성된 컴포넌트(모듈,클래스)

java Bean 연동 액션 태그

<jsp:useBean> 자바빈 객체 생성(DTO)
<jsp:setProperty> 자바빈 객체 프로퍼티 값 저장
<jsp:getProperty> 자바빈 객체 프로퍼티 값 읽음

*현재에는 거의 사용하지 않으나, 잔존하고 있다. 모델1을 쓸 때 액션태그가 주로 활용되었다.

자바빈 객체 만들기(DTO)

package ch05;

public class TestBean {
	private String id;
    private String pwd;
    private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

}

프론트 단 만들기 (입력폼)

<%@ 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>
<script src=../include/jquery-3.6.0.min.js></script>
</head>
<body>

<form action="beanTestPro.jsp" method="post">
아이디 <input name="id">
비밀번호 <input type="password" name="pwd">
이름 <input name="name"><br>
<input type="submit" value="확인">
</form>

</body>
</html>

받아서 처리해주는 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>
<script src=../include/jquery-3.6.0.min.js></script>
</head>
<body>
<%
//들어오는 값이 한글일 수 있으니까 세팅
request.setCharacterEncoding("utf-8");
%>

<!-- 기존 방식 : 자바빈 클래스 임포트 후 객체 생성하여 setter,getter로 값 가져오기-->
<%@ page import="ch05.TestBean"  %>
<%
//TestBean 객체 생성
TestBean bean = new TestBean();
//참조변수.setter를 통해 값 설정(id로 입력된 값을 넣어주기)
bean.setId(request.getParameter("id"));
bean.setPwd(request.getParameter("pwd"));
bean.setName(request.getParameter("name"));
%>
<!-- 참조변수.getter를 통해 값 꺼내기 -->
아이디 : <%= bean.getId()%>
비밀번호 : <%= bean.getPwd()%>
이름 : <%= bean.getName() %>

</body>
</html>

액션태그를 활용해서 자바빈 객체 속성 설정 및 출력 (액션태그 활용)

<%@ 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>
<script src=../include/jquery-3.6.0.min.js></script>
</head>
<body>
<%
//들어오는 값이 한글일 수 있으니까 세팅
request.setCharacterEncoding("utf-8");
%>
<%@ page import="ch05.TestBean"  %>
<!-- 액션태그 방식 -->
<!-- setter처리 -->
<jsp:useBean id="testBean" class="ch05.TestBean">
	<jsp:setProperty property="*" name="testBean"/>
	<!-- property(*모든 프로퍼티), useBean의 id와 setProperty의 name 일치시키기 -->
</jsp:useBean>
<!-- getter처리 -->
아이디 : <jsp:getProperty property="id" name="testBean"/><br>
비밀번호 : <jsp:getProperty property="pwd" name="testBean"/><br>
이름 : <jsp:getProperty property="name" name="testBean"/>


</body>
</html>

과제

registerPro.jsp와 관련된 파일을 가지고 아래처럼 입력필드를 추가 후 아래와 같이 결과가 나오게 하라.

<결과 화면>
아이디 : kim
비번 : 1234
이름 : 김길동
이메일 : kim@naver.com
hp : 010-1234-5678
주소 : 서울시 강남구 역삼동
가입일자 : ----해당시간----

자바빈 만들기

package ch05;

import java.sql.Timestamp;

public class RegisterBean_ {
	private String id;//아이디
	private String passwd;//비번
	private String name;//이름
	private String email;//이메일
	private String hp;//hp
	private String address;//주소
	private Timestamp reg_date;//가입일자
	
	public RegisterBean_(String id, String passwd, String name, String email, String hp, String address,
			Timestamp reg_date) {
		super();
		this.id = id;
		this.passwd = passwd;
		this.name = name;
		this.email = email;
		this.hp = hp;
		this.address = address;
		this.reg_date = reg_date;
	}
	
	public RegisterBean_() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPasswd() {
		return passwd;
	}
	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getHp() {
		return hp;
	}
	public void setHp(String hp) {
		this.hp = hp;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public Timestamp getReg_date() {
		return reg_date;
	}
	public void setReg_date(Timestamp reg_date) {
		this.reg_date = reg_date;
	}
	@Override
	public String toString() {
		return "RegisterBean_ [id=" + id + ", passwd=" + passwd + ", name=" + name + ", email=" + email + ", hp=" + hp
				+ ", address=" + address + ", reg_date=" + reg_date + "]";
	}
	
	
}

입력폼 만들기

<%@ 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>
<script src=../include/jquery-3.6.0.min.js></script>
</head>
<body>
<form action="registerPro_.jsp" method="post">
	<table>
		<tr>
			<td>아이디</td>
			<td><input name="id"></td>
		</tr>
		<tr>
			<td>비밀번호</td>
			<td><input type="password" name="passwd"></td>
		</tr>
		<tr>
			<td>이름</td>
			<td><input name="name"></td>
		</tr>		
		<tr>
			<td>이메일</td>
			<td><input name="email"></td>
		</tr>
		<tr>
			<td>hp</td>
			<td><input name="hp"></td>
		</tr>		
		<tr>
			<td>주소</td>
			<td><input name="address"></td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="확인">
			</td>
		</tr>

	</table>

</form>
</body>
</html>

받아서 처리하는 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>
<script src=../include/jquery-3.6.0.min.js></script>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
%>

<!-- 액션태그 setter역할 -->
<jsp:useBean id="registerBean" class="ch05.RegisterBean_">
	<jsp:setProperty property="*" name="registerBean"/>
</jsp:useBean>
<!-- Timestamp값 처리 -->
<%@ page import="java.sql.Timestamp"  %>
<%
//system.currentTimeMillis() 시스템의 현재 밀리세컨드값
registerBean.setReg_date(new Timestamp(System.currentTimeMillis()));
%>
<!-- getter처리 -->
아이디 : <jsp:getProperty property="id" name="registerBean"/><br>
비밀번호 : <jsp:getProperty property="passwd" name="registerBean"/><br>
이름 : <jsp:getProperty property="name" name="registerBean"/><br>
이메일 : <jsp:getProperty property="email" name="registerBean"/><br>
hp : <jsp:getProperty property="hp" name="registerBean"/><br>
주소 : <jsp:getProperty property="address" name="registerBean"/><br>
가입일자 : <jsp:getProperty property="reg_date" name="registerBean"/>
</body>
</html>
profile
차근차근

0개의 댓글