프로그래밍/JSP Servlet

JSP/Servlet – 자바빈의 다형성 활용하기

가카리 2016. 1. 18. 22:51
반응형

 

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 또한 다형성이 잘 적용됨을 알 수 있습니다.

반응형