본문 바로가기
웹 프로그래밍(풀스택-->java)/웹프로그래밍(백엔드-->java)

15. Jsp 페이지 액션 태그 4,5

by 백엔드개발자0107 2021. 10. 24.

이번시간에는 useBean 액션태그에 대해서 배워볼것이다.

 

useBean은 javaBean이라고도 불린다.

 

useBean은 <jsp:useBean>이라고도 하는데 자바빈을 jsp페이지에서 사용할떄 사용한다.

 

자바빈이란 무엇이고 어떻게 만들어지는지 알아보자!

 

자 우리는, 아직까지 jsp 데이터베이스 부분을 나가지는 않았지만,

 

우리가 회원가입을 하나 한다고 가정하자,

 

그러면 그와 관련된 정보를 데이터베이스라는 공간에 저장한다.

 

하나의 회원가입양식을 작성해서 데이터베이스에 저장한다.

 

그렇다면 이 데이터베이스에 저장되어 있는 정보를 과연 스트링(문자열로)으로 저장해서 가지고 올까?

 

아닐것이다. 일단 페이지화면으로 가지고 와야하는데, 일일히 배열에다가 담기도 그렇고 여러가지로 문제가 있다.

 

왜냐하면 배열은 고정길이고 회원은 몇명인지 알수가 없기 때문이다. 그렇다면 결론은 가변길이를 써야한다.

 

즉 ,arrayList를 이용해야 한다. 하지만, arrayList는 또 String 하나 같은 저장된 타입 하나만 형식으로 지정할수 있기 때문에

 

자칫하다가는 너무 복잡해 질수가 있다.. 그렇다면 어떡하나, 우리는 데이터베이스들과 맵핑되는 자바 변수만 데이터베이스에 들어있는

 

클래스를 하나 만들고, 그 클래스에 여기있는 데이터들을 하나씩 끄집어서 그 변수에 저장하는 개념을 이용한다.

 

그리고 그 클래스를 가변길이인 arrayList에 저장하는 방법을 사용한다.

 

정리하면 자바빈스는 

 

우리가 여러개의 데이터를 하나의 클래스에 저장시켜놓고 그 클래스를 우리가 arrayList라던가에 저장해서 쓸때 자바 빈스라는 용어를 주로

 

쓴다.

 


MemberJoin.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>

</head>

<body>

 

<center>

 

<h2>회원가입</h2>

<form action="MemberJoinProc.jsp" method="post">

<table width="500" border="1">

<tr height="50">

<td width="150" align="center">아이디</td>

<td width="150" align="center"><input type="text" name="id"

size="40" placeholder="id넣으세요 "></td>

</tr>

 

<tr height="50">

<td width="150" align="center">패스워드</td>

<td width="150" align="center"><input type="password"

name="pass1" size="40" placeholder="비밀번호는 영문과 숫자만 넣어주세요"></td>

</tr>

 

 

 

<tr height="50">

<td width="150" align="center">이메일</td>

<td width="150" align="center"><input type="email"

name="email" size="40"></td>

</tr>

 

<tr height="50">

<td width="150" align="center">전화번호</td>

<td width="150" align="center"><input type="tel" name="tel"

size="40"></td>

</tr>

 

<tr height="50">

<td width="150" align="center">주소</td>

<td width="150" align="center"><input type="text"

name="address" size="40"></td>

</tr>

 

<tr height="50">

<td colspan="2" width="150" align="center"><input

type="submit" value="회원가입"></td>

</tr>

 

</table>

 

</form>

 

</center>

 

 

 

</body>

</html>

 

 

우리는  위 아아디, 패스워드 ,이메일 ,전화번호, 주소 등 여러가지 의 데이터를 하나로 관리해야하는데 가장 쉬운 방법이 

 

위 내용과 관련된 자바 클래스를 만드는것이다. jsp와 데이터베이스 간의 데이터를 쉽게 주고받게 하기위한 개념이 자바 빈이다.

 

자바 빈은 Project Explorer창의 Java Resources 폴더가 보일것이다. 서로 다른 클래스에 있는 폴더에 접근(현재는 WebContent라는

 

폴더)하기 위해서는 new Package를 만들어 준다.  이름은 bean으로 한다.

 

MemberBean.java에다가 자바빈을 만든다.

 

 


useBean을 이용하기 위해서는 반드시,

 

 

위의 private String id 와 input타입의 name="id" 가 동일해야만 useBean을 이용할수가 있다.

 

이렇게 하면 자동으로 useBean이 매핑이 된다..!!! 기억하자!

 

자 ,인자 데이터를 읽어드려야 하니, 그것이 MemberJoinProc.jsp이다.

 


MemberJoinProc.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>

</head>

<body>

 

<center>

 

<h2>회원 정보 보기</h2>

 

<%

request.setCharacterEncoding("UTF-8");

%>

<!-- request로 넘어온 데이터를 자바 빈즈랑 맵핑 시켜주는 useBean -->

 

<jsp:useBean id="mbean" class="bean.MemberBean">

<!-- 객체생성  MemberBean mbean = new  MemberBean() 과 같다 -->

<!-- 앞으로 MemberBean에 접근할때는 mbean으로 접근하면 된다. -->

<!-- jsp 내용을 자바빈 클래스(MemberBean의미)의 데이터를 맵핑(넣어줌)  -->

 

<jsp:setProperty property="*" name="mbean"/><!-- 자동으로 모두 맵핑시켜주시오  -->

 

 

<h2>당신의 아이디는 <jsp:getProperty property="id" name="mbean"/> </h2>

<h2>당신의 패스워드 <jsp:getProperty property="pass1" name="mbean"/> </h2>

<h2>당신의 이메일 <jsp:getProperty property="email" name="mbean"/> </h2>

 

<h2>

당신의 전화는

<%= mbean.getTel() %>

 

</h2>

 

 

</jsp:useBean>

</center>

 

 

</body>

</html>

 


 

 

MemberBean.java

 

package bean;

// 이런 과정이 usebean이다.

public class MemberBean {

 

// JavaBean은 규칙이 있다.

private String id;

private String pass1;

private String email;

private String tel;

private String address;

 

 

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getPass1() {

return pass1;

}

public void setPass1(String pass1) {

this.pass1 = pass1;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getTel() {

return tel;

}

public void setTel(String tel) {

this.tel = tel;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

 

 

 

 

 

}