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클래스에 한번에 담아서 가져오는 것.