자바로 작성된 컴포넌트(모듈,클래스)
<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>
<%@ 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>