2 분 소요

Java Beans(자바 빈즈) 활용하여 로그인 로직 만들기(1)


이전 시간에 만들었던 로그인 로직을 Java Beans(자바 빈즈)를 활용하여 재 구현해보자.

여기서 자바 빈즈란 관련 있는 작업들을 모아놓은 JSP의 표준 액션 태그를 통해 접근할 수 있는 자바 클래스로 멤버변수, getter, setter로 이루어져있다. 따라서 자바 빈즈 하나에 여러 JSP 페이지에서 사용가능하여 재사용성이 좋다.

자바 빈즈의 장점으로는 JSP 페이지에 복잡한 자바 코드가 들어가는 것을 방지하여 보다 JSP 페이지를 이해하는데 도움을 준다.


자바 빈즈의 규칙 몇가지를 살펴보자.

  1. 자바 빈즈는 반드시 패키지가 있어야한다.(default package에 있으면 안됨)
  2. 기본 생성자가 존재하여 자바 빈즈의 객체 생성은 <jsp:useBean>을 사용한다.
  3. 멤버 변수의 접근 제어자는 private으로 선언하고 getter와 setter를 이용하여 멤버 변수에 접근한다.


JSP의 객체 생성

먼저 패키지를 생성하여 class에 경로를 지정한다.

jsp9_1

id는 member 객체의 참조변수

<jsp:useBean class="com.koreait.member.MemberDTO" id="member">


setter 메소드

property는 MemberDTO 내 필드이름, value는 property에 들어갈 값, name는 <jsp:useBean>에서 생성한 객체의 참조변수를 의미한다.

<jsp:setProperty property="userid" name="member" value="apple"/>


getter 메소드

property는 MemberDTO 내 필드이름, name는 <jsp:useBean>에서 생성한 객체의 참조변수를 의미한다.

<jsp:getProperty property="userid" name="member"/>

예제(1)

로그인 페이지를 구현하기전 간단한 테스트를 통해 어떤 식으로 자바빈즈가 활용되는지 알아보자.

Student(DTO)

package com.koreait.member;

public class Student {
	private String idx;
	private String name;
	private String gender;
	private int age;

	public String getIdx() {
		return idx;
	}

	public void setIdx(String idx) {
		this.idx = idx;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Student [idx=" + idx + ", name=" + name + ", gender=" + gender + ", age=" + age + "]";
	}
}

javabeans.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>자바 빈즈 테스트</title>
</head>
<body>
	<h2>자바 빈즈 테스트</h2>
	<form method="post" action="javabeans_ok.jsp">
		<p>번호 : <input type="text" name="idx"></p>
		<p>이름 : <input type="text" name="name"></p>
		<p>성별 : <input type="text" name="gender"></p>
		<p>나이 : <input type="text" name="mem_age"></p>
		<p>성별 : <input type="submit" value="가입완료"></p>
	</form>
</body>
</html>

form 태그를 활용하여 post 방식으로 javabeans_ok.jsp 페이지에 데이터를 전달해준다.

javabeans_ok.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="student" class="com.koreait.member.Student"/>
<jsp:setProperty property="*" name="student"/> 
<jsp:setProperty property="age" param="mem_age" name="student"/> 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>자바 빈즈 테스트</title>
</head>
<body>
	<h2>자바 빈즈 테스트</h2>
	<p>번호 : <jsp:getProperty property="idx" name="student"/></p>
	<p>이름 : <jsp:getProperty property="name" name="student"/></p>
	<p>성별 : <jsp:getProperty property="gender" name="student"/></p>
	<p>나이 : <jsp:getProperty property="age" name="student"/></p>
</body>
</html>

앞서 javabeans.jsp 페이지에서 form 태그로 전달 받은 데이터는 <jsp:setProperty>를 통해 DTO 객체로 전달되어 저장되고 html 출력 부분에서 <jsp:getProperty>를 통해 DTO 객체에 저장된 데이터를 받아올 수 있다.

javabeans.jsp)
jsp9_2

javabeans_ok.jsp)
jsp9_3

태그:

카테고리:

업데이트: