-
Java Beans 활용하여 로그인 만들기(1)프로그래밍/JSP 2022. 11. 27. 17:05728x90
이전 게시글에 만들었던 로그인 기능을 Java Beans를 활용하여 재구현 해볼 것이다.
Java Beans(자바 빈즈)는 관련 있는 작업들을 모아놓은 자바 클래스로 멤버변수, getter, setter로 이루어져있다. JSP의 표준 액션 태그를 통해 접근이 가능하며, Java Beans 하나에 여러 JSP 페이지에서 사용할 수 있어 재사용성이 좋다.
Java Beans의 장점으로는 JSP 페이지에 복잡한 자바 코드가 들어가는 것을 방지하여 보다 JSP 페이지를 이해하는데 도움을 준다.
자바 빈즈의 규칙 몇가지를 살펴보자.
- 자바 빈즈는 반드시 패키지가 있어야한다.(default package에 있으면 안됨)
- 기본 생성자가 존재하여 자바 빈즈의 객체 생성은 <jsp:useBean>을 사용한다.
- 멤버 변수의 접근 제어자는 private으로 선언하고 getter와 setter를 이용하여 멤버 변수에 접근한다.
JSP의 객체 생성
먼저 패키지와 그 안에 DTO 파일인 Student.java을 생성한다.
id는 member 객체의 참조변수, class에 경로를 지정한다.
<jsp:useBean class="com.koreait.member.Student" id="student">
setter 메소드
property는 Student 내 필드이름, value는 property에 들어갈 값, name는 <jsp:useBean>에서 생성한 객체의 참조변수를 의미한다.
<jsp:setProperty property="name" name="student" value="KimApple"/>
getter 메소드
property는 Student 내 필드이름, name는 <jsp:useBean>에서 생성한 객체의 참조변수를 의미한다.
<jsp:getProperty property="name" name="student"/>
로그인 페이지를 구현하기전 간단한 테스트를 통해 어떤 식으로 자바빈즈가 활용되는지 알아보자.
Student
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>
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 객체에 저장된 데이터를 받아올 수 있다.
728x90'프로그래밍 > JSP' 카테고리의 다른 글
JSP 게시판 만들기(1) (0) 2022.11.30 Java Beans 활용하여 로그인 만들기(2) (0) 2022.11.29 JSP 회원가입 만들기 (0) 2022.11.26 JSP 로그인 만들기 (0) 2022.11.25 AJAX (0) 2022.11.22