본문 바로가기

Langauge/JSP, Servlet

[JSP, Servlet] JSP 표준액션 - useBean

1.   java 파일에서 MemberDTO 클래스 만들기

 

 1.  필드 생성하기

private String name;    // 성명
private String jubun;    // 주민번호

 

 

 2.  기본생성자 및 파라미터가 있는 생성자 만들기

public MemberDTO() {}    // 기본생성자

public MemberDTO(String name, String jubun) {  // 파라미터가 있는 생성자
   super();               // 부모클래스의 생성자를 불러 초기화할때 사용되며, 기본적으로 자식클래스의 생성자에 추가됨.
   this.name = name;     // this.필드명 = 파라미터(입력받은값)
   this.jubun = jubun;
}

 

 3.  getter / setter 생성하기

 

 4.  성별 및 나이 메소드 생성하기  -  jubun 필드를 이용하여 생성함.

 

 

[.java 파일] 

 

package chap03;

import java.util.Calendar;

public class MemberDTO {

	private String name;  // 성명
	private String jubun; // 주민번호
	
	public MemberDTO() {}  // 기본생성자
	
	public MemberDTO(String name, String jubun) {
		super();           // 자식 클래스가 자신을 생성할 때 부모 클래스의 생성자를 불러 초기화 할때 사용됨. (기본적으로 자식 클래스의 생성자에 추가됨.)
		this.name = name;  // this.필드명 = 파라미터(입력받은값)
		this.jubun = jubun;
	}

	public String getIrum() {
		return name;
	}

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

	public String getJubun() {
		return jubun;
	}

	public void setJubun(String jubun) {
		this.jubun = jubun;
	}
	
	////////////////////////////////////////////////////////
	
	// 1. 성별을 알아오는 메소드 생성하기 //
	public String getGender() {  // JSP 에서는 항상 get"메소드이름" 으로 설정해줘야 한다(규칙). 단, 메소드이름은 꼭 대문자로 시작한다.
		
		if( jubun != null ) {  // 주민번호가 null값이 아니라면
			String n = jubun.substring(6, 7);  // 성별 알아오기
			
			if("1".equals(n) || "3".equals(n)) {
				return "남";
			}
			else if("2".equals(n) || "4".equals(n)) {
				return "여";
			}
			else { // 성별을 잘못 입력한 경우
				return "";
			}
		}
	
		else {  // 주민번호가 null값이라면
			return "";  
		}
		
	}// end of public String gender() {}----------------------------
	
	
	// 2. 나이를 알아오는 메소드 생성하기 //
	public int getAge() {  // JSP 에서는 항상 get"메소드이름" 으로 설정해줘야 한다(규칙). 단, 메소드이름은 꼭 대문자로 시작한다.
		
		// 먼저 현재년도을 알아와야 한다.
		Calendar now = Calendar.getInstance(); // 현재날짜와 시간을 얻어온다.
		int currentYear = now.get(Calendar.YEAR); // 현재년도를 얻어온다.
		
		if(jubun != null) {  // 주민번호가 null값이 아니라면
			
			String n = jubun.substring(6, 7);  // "1" 또는 "2" 이라면 1900년대 생,
			                                   // "3" 또는 "4" 이라면 2000년대 생
			String jubunYear = jubun.substring(0, 2); // 주민번호에서 출생년도 2자를 얻어오는 것
			
			if("1".equals(n) || "2".equals(n)) { // 1900년대 생이라면
				return currentYear - (1900 + Integer.parseInt(jubunYear)) + 1;  // 현재나이
			}
			else if("3".equals(n) || "4".equals(n)) { // 2000년대 생이라면
				return currentYear - (2000 + Integer.parseInt(jubunYear)) + 1;  // 현재나이
			}
			else {  // 주민번호를 잘못 입력한 경우
				return 0;  // 잘못 입력했으므로 0 값을 준다.
			}
		}
		
		else {  // 주민번호가 null값이라면
			return 0;  // 잘못 입력했으므로 0 값을 준다.
		}
        
	}// end of public int age() {}--------------------
	
}

 

 

2.  JSP 표준액션 중 useBean 을 사용하여 MemberDTO 클래스의 객체정보 불러오기

 

자바에서 객체 생성하듯이

JSP 표준액션 중 useBean 을 사용하여 html 에서 MemberDTO 객체를 생성해줄 것이다. 

단, 주의할 점은 자바와 달리 useBean 방식은 기본생성자가 꼭 있어야지만 실행된다.

따라서 아래와 같이 기본생성자부터 만들어줄 것이다.

 

 

 1.  기본생성자 만들기

  chap03.MemberDTO 클래스의 기본생성자로 mbr3 이라는 객체를 생성하는 것이다.

  jsp:useBean 은 JSP 표준액션 중 useBean 을 의미한다.

 

  즉, 자바에서 기본생성자를 만들어주듯이 useBean 문법을 사용하여 아래와 같이 나타낸다.

<jsp:useBean id="mbr3" class="chap03.MemberDTO" /> 
//   chap03.MemberDTO mbr3 = new chap03.MemberDTO();   와 동일하다.

 

 

 2.  필드값 재설정하기

  setProperty 은 setter 를 의미한다.

  property="irum"  은  MemberDTO 클래스의 setter 메소드명 setIrum 의 Irum 을 을 의미하며,

  반드시 소문자로 변화시켜서 넣어주어야 한다.

  name="mbr3" 은 객체를 의미한다.

<jsp:setProperty property="irum" name="mbr3" value="김태희" />
//  mbr3.setIrum("김태희"); 와 동일하다.
<jsp:setProperty property="jubun" name="mbr3" value="8904062234567" />
//  mbr3.setJubun("8904062234567"); 와 동일하다.

 

 

 3.  필드값 및 메소드 불러오기

  성명, 주민번호, 성별, 나이 메소드를 불러온다.

 

  getProperty 은 getter 를 의미한다.

<jsp:getProperty property="irum" name="mbr3" />
//  mbr3.getIrum(); 와 동일하다.
<jsp:getProperty property="jubun" name="mbr3" />
//  mbr3.getJubun(); 와 동일하다.
<jsp:getProperty property="gender" name="mbr3" />
//  mbr3.getGender(); 와 동일하다.
<jsp:getProperty property="age" name="mbr3" />
//  mbr3.getAge(); 와 동일하다.

 

 

[.jsp 파일]

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 표준액션 중 useBean 에 대해서 알아봅니다.</title>
</head>
<body>
	
	<div>
		<h2>JSP 표준액션 중 useBean 을 사용하여 MemberDTO 클래스의 객체정보 불러오기</h2>
		
		<jsp:useBean id="mbr3" class="chap03.MemberDTO" />   <!-- jsp:useBean 은 JSP 표준액션.  Bean 은 객체, id="mbr3" 은 객체 -->
		<%--
			위의 것은 아래의 뜻이다.  ==> (자바와 달리)JSP 에서 useBean 은 기본생성자가 꼭 있어야지만 실행된다.!!! 단, MemberDTO 파일에서 기본생성자 및 파라미터있는 생성자를 모두 생성하지 않을시 자바와 동일하게 기본생성자가 생략된것으로 간주하여 실행된다.!!
			
			chap03.MemberDTO mbr3 = new chap03.MemberDTO(); // 기본생성자
			즉, chap03.MemberDTO 클래스의 기본생성자로 mbr3 이라는 객체를 생성하는 것이다.
		--%>
		
		<jsp:setProperty property="irum" name="mbr3" value="김태희" />  <!-- property="irum" : setIrum(setter) 의 Irum 을 소문자로 반드시 변환시켜야 한다. --> <!-- setProperty 은 setter -->
		<%--
			위의 것은 아래의 뜻이다.
			mbr3.setIrum("김태희"); 와 같은 것이다.
		--%>
		
		<jsp:setProperty property="jubun" name="mbr3" value="8904062234567" />  <!-- property="jubun" : setJubun(setter) 의 Jubun 을 소문자로 반드시 변환시켜야 한다. --> <!-- setProperty 은 setter -->
		<%--
			위의 것은 아래의 뜻이다.
			mbr3.setJubun("8904062234567"); 와 같은 것이다.
		--%>
		
		<ul>
			<li>성명 : <jsp:getProperty property="irum" name="mbr3" /></li>
			<%-- 
				위의 것은 아래의 뜻이다.
				mbr3.getIrum(); 와 같은 것이다.
			--%>
			<li>주민번호 : <jsp:getProperty property="jubun" name="mbr3" /></li>
			<%-- 
				위의 것은 아래의 뜻이다.
				mbr3.getJubun(); 와 같은 것이다.
			--%>
			<li>성별 : <jsp:getProperty property="gender" name="mbr3" /></li>  <!-- 이름은 항상 get"이름" 으로 생성되어야 한다. -->
			<%-- 
				위의 것은 아래의 뜻이다.
				mbr3.getGender(); 와 같은 것이다.
			--%>
			<li>나이 : <jsp:getProperty property="age" name="mbr3" /></li>     <!-- 이름은 항상 get"이름" 으로 생성되어야 한다. -->
			<%-- 
				위의 것은 아래의 뜻이다.
				mbr3.getAge(); 와 같은 것이다.
			--%>
		</ul>
	</div>
	
</body>
</html>

 

 

 

 

실행 화면