JSP/Servlet – 자바빈의 다형성 활용하기
자바에서 다형성은 한타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 해서 다형성을 구현하였다.
예제에서 ProductInfo클래스가 부모클래스이고 BookInfo클래스와 ClothingInfo클래스가 자식 클래스이다.
이 점을 이용해서 자바빈 클래스의 다형성을 이용해 보자.
ProductInfo.java
package info;
public class ProductInfo {
private String code;
private String name;
private int price;
public void setCode(String code){
this.code = code;
}
public void setName(String name){
this.name = name;
}
public void setPrice(int price){
this.price = price;
}
public String getCode(){
return code;
}
public String getName(){
return name;
}
public int getPrice(){
return price;
}
}
BookInfo.java
package info;
public class BookInfo extends ProductInfo{
private short page;
private String writer;
public void setPage(short page){
this.page = page;
}
public void setWriter(String writer){
this.writer = writer;
}
public short getPage(){
return page;
}
public String getWriter(){
return writer;
}
}
ClothingInfo.java
package info;
public class ClothingInfo extends ProductInfo{
private char size;
private String color;
public void setSize(char size){
this.size = size;
}
public void setColor(String color){
this.color = color;
}
public char getSize(){
return size;
}
public String getColor(){
return color;
}
}
BookInfoSave.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- 자바빈 객체를 만들고 값을 넣습니다. -->
<jsp:useBean class="info.BookInfo" id = "minfo" scope="request"/>
<jsp:setProperty name="minfo" property="code" value="10"/>
<jsp:setProperty name="minfo" property="name" value="gakari"/>
<jsp:setProperty name="minfo" property="price" value="1000"/>
<jsp:setProperty name="minfo" property="writer" value="존그리샴"/>
<jsp:setProperty name="minfo" property="page" value="704"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
책 정보가 저장되었습니다. <BR>
--------------------------<BR>
<!-- 여기서 ProductInfo.jsp를 호출합니다. ProductInfo.jsp는 부모클래스의 메소드를 이용해서 값을 출력합니다. -->
<jsp:include page="ProductInfo.jsp"/>
</body>
</html>
ProductInfo.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- 부모 클래스로 값을 받는다. -->
<jsp:useBean class="info.ProductInfo" id="minfo" scope="request"/>
코드 : <jsp:getProperty name="minfo" property="code" /> <BR>
제품명 : <jsp:getProperty name="minfo" property="name" /> <BR>
가격 : <jsp:getProperty name="minfo" property="price" /> <BR>
ClothingInfoSave.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<jsp:useBean class="info.ClothingInfo" id = "minfo" scope="request"/>
<jsp:setProperty name="minfo" property="code" value="20"/>
<jsp:setProperty name="minfo" property="name" value="gakari2"/>
<jsp:setProperty name="minfo" property="price" value="2000"/>
<jsp:setProperty name="minfo" property="size" value="m"/>
<jsp:setProperty name="minfo" property="color" value="미색"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
옷 정보가 저장되었습니다. <BR>
--------------------------<BR>
<!-- 여기서 ProductInfo.jsp를 호출합니다. ProductInfo.jsp는 부모클래스의 메소드를 이용해서 값을 출력합니다. -->
<jsp:include page="ProductInfo.jsp"/>
</body>
</html>
실행 화면
BookInfoSave.jsp를 실행하면 책정보가 저장되었다고 나옵니다. 부모 클래스인 ProductInfo가 자식클래스인 BookInfo의 값을 출력해줌을 알 수 있습니다.
ClothingInfoSave.jsp 또한 다형성이 잘 적용됨을 알 수 있습니다.
'프로그래밍 > JSP Servlet' 카테고리의 다른 글
JSP/Servlet – JSTL <c:choose> 커스텀 액션 사용하기 (0) | 2016.01.25 |
---|---|
JSP/Servlet - JSTL <c:if> 커스텀 액션 사용하기 (0) | 2016.01.24 |
JSP/Servlet – JSTL <c:set> 커스텀 액션 사용하기 (0) | 2016.01.24 |
JSP/Servlet – 스크립팅 요소를 대신하는 표준액션들 (0) | 2016.01.19 |
JSP/Servlet – 웹브라우저로 입력된 값을 자바빈 프로퍼티로 설정하기 두번째 (0) | 2016.01.18 |
JSP/Servlet – 웹브라우저로부터 입력된 값을 자바빈 프로퍼티로 설정하기 (0) | 2016.01.17 |
JSP/Servlet - 자바빈 관련 표준액션 사용 방법 (0) | 2016.01.17 |
JSP/Servlet - <jsp:forward> 표준 액션의 사용 방법 (0) | 2016.01.14 |