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>
'Langauge > JSP, Servlet' 카테고리의 다른 글
[JSP] WEB-INF 에 저장하는 이유 (0) | 2022.09.01 |
---|---|
[JSP, Servlet] fmt 태그 (0) | 2022.09.01 |
[JSP, Servlet] JSP 표준액션 - forward (0) | 2022.09.01 |
[JSP, Servlet] <%@ include file="" %> 와 <jsp:include> 차이 (0) | 2022.08.30 |
[JSP] 지시어 include (0) | 2022.08.29 |