자바빈
jsp페이지 디자인 부분과 비즈니스 로직 부분을 분리함으로써 복잡한 jsp코드들을 줄이고,프로그램의 재사용성
을 증사시킨다.
Package: test class: BeanTest
package를 만들고 class파일을 열어 java파일을 작성한다.
package test;
public class BeanTest {
private String name="자바빈";
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
}
변수를 생성하고 변수에 값을 저장한다
String 변수이름 ="데이터";
데이터를 은닉 하기 위해서 멤버 변수를 private으로 설정
get()메서드와 set()메서드를 사용해준다.
1.자바빈 객체를 생성하기 위한 액션태그
<jsp:useBean id="빈이름" class="자바빈 클래스 명" scope="사용범위"/>
scope는 영역객체 (request,page,session,application)4종류가 있고 기본값은 page 이다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beantest" class="test.BeanTest" scope="page"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<b>자바빈 use:bean </b>
<h3><%=beantest.getName() %></h3>
</body>
</html>
java파일에 입력한 데이터가 get()으로 전달받아 출력되는것을 볼수있다
자바빈 클래스의 속성값을 설정하기 위한 태그이다. 속성값을 변경해준다.
<jsp:setProperty name="빈이름" property="속성명" value="설정할 속성 값"/>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beanTest" class="test.BeanTest" scope="page"/>
<jsp:setProperty name="beanTest" property="name" value="BeanTest!"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>setProperty</h1>
<h3><%=beanTest.getName() %></h3>
</body>
</html>
java에서 자바빈 으로 작성한 데이터의 값을 value="BeanTest!"
로 바꿀수있다.
처음 작성한 java파일에있는 데이터를 파라미터로 입력 받는 방법이다.
HTML입력
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>HTML</h1>
<form action="beanTest3.jsp">
이름:<input type="text" name="name"/>
<br>
<input type="submit" value="전송">
</form>
</body>
</html>
JSP파일 작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beanTest" class="test.BeanTest" scope="page"/>
<jsp:setProperty name="beanTest" property="name" param="name"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>자바빈 파라미터 </h1>
<h3><%=beanTest.getName() %></h3>
</body>
</html>
<jsp:useBean id="beanTest" class="test.BeanTest" scope="page"/>
<jsp:setProperty name="beanTest" property="name" param="name"/>
설정해주고
<h3><%=beanTest.getName() %></h3>
받을 수있다.
클라이언트에서 전송되어오는 파라미터 값이 모두 같은 이름의 빈 객체의 속성값으로 자동으로 할당된다.
class= BeanTest2
package test;
public class BeanTest2 {
private String name;
private String addr;
private String email;
private String birthday;
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr=addr;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email=email;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday=birthday;
}
}
클라이언트 페이지를 작성한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#formArea{
margin: auto;
width: 400px;
border: 1px solid black;
}
h1,fieldset {
text-align: center;
}
</style>
</head>
<body>
<section id="formArea">
<h1>propery="*" 테스트</h1>
<form action="beanTest4.jsp" method="post">
<fieldset>
<label for="name">이름:</label><input type="text" name="name" id="name"> <br>
<label for="addr">주소:</label><input type="text" name="addr" id="addr"> <br>
<label for="email">이메일 주소:</label><input type="text" name="email" id="email"><br>
<label for="birthday">생년월일:</label><input type="text" name="birthday" id="birthday"><br>
<br>
<input type="submit" value="전송">
</fieldset>
</form>
</section>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="beanTest" class="test.BeanTest2" scope="page"/>
<jsp:setProperty name="beanTest" property="*"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>자바빈 속성값 출력</h1>
<b>이름:</b> <%=beanTest.getName() %> <br>
<b>주소:</b> <%=beanTest.getAddr() %> <br>
<b>이메일 주소:</b> <%=beanTest.getEmail() %> <br>
<b>생년월일:</b> <%=beanTest.getBirthday() %> <br>
</body>
</html>
전송된 모든 파라미터 값들이 빈객체의 속성 값으로 할당된다.
자바빈 클래스의 속성값을 가져오기 위한 태그이다.
<jsp:getProperty name="빈이름" property="속성명"/>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="beanTest" class="test.BeanTest" scope="page"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1><%=beanTest.getName() %></h1>
<h3><jsp:getProperty name="beanTest" property="name"/></h3>
</body>
</html>
처음에 입력한 java파일에서 작성한 데이터가 출력이 된다.
<h1><%=beanTest.getName() %></h1>
✔️✔️<h3><jsp:getProperty name="beanTest" property="name"/></h3>