JSP

221202 자바빈

주영재 2022. 12. 2. 11:34

자바빈 (JAVA Bean)
자바빈은 객체. 
JAVA언어의 데이터(변수)와 기능(메서드)으로 이루어진 클래스<=VO

자바빈은 데이터를 저장하는 변수와 getter메서드와 setter메서드를 반드시 적어주어야 한다.
나중에 getter메서드가 없으면 호출이 불가능해짐. public이든 아니든 간에. 

 

bean_basic

<%@ 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>
	
	<h3>자바빈 사용하기</h3>
	<form action="bean_basic_ok.jsp" method="post">
		
		아이디:<input type="text" name="id" size="10"><br>
		비밀번호:<input type="password" name="pw" size="10"><br>
		이름:<input type="text" name="name" size="10"><br>
		이메일:<input type="email" name="email" size="10"><br>
	
		<input type="submit" value="확인">
	
	</form>


</body>
</html>

 

user클래스

package com.example.bean;

public class User {
	/* 자바빈은 form과 DB의 통신과정에서 변수처리를 쉽게하기 위해서 사용합니다.
	 *  관련변수를 동일한 이름으로 선언하고, getter setter를 반드시 생성합니다.
	 */
	
	private String id;
	private String pw;
	private String name;
	private String email;
	
	//생성자-빈클래스의 생성자는 보통 기본생성자, 모든변수를 초기화하는 생성자 2개를 선언
	public User() {}
	
	public User(String id, String pw, String name, String email) {
		super();
		this.id = id;
		this.pw = pw;
		this.name = name;
		this.email = email;
	}


	//getter setter
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	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;
	}
	
	
}

 

bean_basic_ok

<%@page import="com.example.bean.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	response.setCharacterEncoding("utf-8"); //한글처리
	
	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	String name = request.getParameter("name");
	String email = request.getParameter("email");
	
	//데이터베이스로...
	//단순히 값이 적으면 그냥 사용해도 되지만, 값이많으면 자바빈(객체) 사용함
	
	/*1st
	User user = new User();
	user.setId(id);
	user.setPw(pw);
	user.setName(name);
	user.setEmail(email);
	*/
	
	//2nd
	User user = new User(id, pw, name, email);
	request.setAttribute("user", user); //3번페이지에서 활용
	request.getRequestDispatcher("bean_basic_result.jsp").forward(request, response);//포워딩
	
%>

 

bean_basic_result

<%@page import="com.example.bean.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//user안에 있는 원자값들을 화면에 춢력
	User user=(User)request.getAttribute("user");

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>bean_basic_result</h3>
	
	아이디:<%=user.getId() %><br>
	비밀번호:<%=user.getPw() %><br>
	이름:<%=user.getName() %><br>
	이메일:<%=user.getEmail() %><br>
	
</body>
</html>

 

엄청 많은 값을 담아서 가져오려면 귀찮아진다. user클래스에 한번에 담아서 가져오는 것.