MVC 에 대한 설명
# 순수 자바 보다는 JSP를 위한 방법이 됩니다.
# 이 방법을 습득하게 되면, 나중에 실무에서도 익숙해질 수 있습니다.
# JSP에서는 어떻게 씌여 질까요?
- M : Model
- 데이터입니다. 데이터베이스가 존재하게 됩니다. 이 데이터를 가져오는 것을 MODEL이 해줍니다.
- V : View
- 가져오는 데이터는 동일하지만, 사용자에게 보여질 화면은 달라질 수 있습니다.
- 모델이 변화되지 않기 때문에, 뷰만 분리시켜 따로 구성할 수 있습니다.
- C : Controller
- 모델과 뷰의 데이터 연계를 제어해주는 컨트롤 입니다.
#DAO(Data Accese Object) : 데이터를 추출하기 위한 개체입니다. 데이터베이스가 될 수 있으며, 파일이 될 수 있습니다.
왜?! 자바빈즈를 사용할까.?
"데이터가 여기있다가, 저기 있다가, 헷갈리네. ㅠ_ㅠ 뭐하러 빈즈를 쓰는거야 버럭 버럭"
- 빈즈를 사용하게 되면, 데이터의 흐름을 관리할 때, 훨씬 체계적인 관리가 가능합니다.
- 프레젠테이션 로직과, 비즈니스 로직을 분리할 수가 있다. 즉 뷰와 JAVA소스의 분리가 가능합니다.
- 컴포넌트의 사용이 쉽게 되고, 공유가 쉽습니다.
▶실습 (itExpert 예제 4-2 p126)
# MyCalendar.java
package itexpert.chap04;
import java.util.*;
import java.text.*;public class MyCalendar {
/*
* 년, 월, 일 사이의 구분자 기본값은 / 입니다.
*/
private String delimiter = "/";
/*
* 년, 월, 일 사이의 구분자를 설정합니다.
*/
public void setDelimiter(String delimiter){
this.delimiter = delimiter;
}
/*
* 오늘 날짜를 가져옵니다.
* 년,월,일 사이의 구분자는 setDelimiter()로 미리 설정합니다. 기본값 /
* @return 오늘의 날짜/
*/
public String getToday(){
GregorianCalendar calendar = new GregorianCalendar();
StringBuffer today = new StringBuffer();
DecimalFormat df = new DecimalFormat("00");
today.append(calendar.get(Calendar.YEAR));
today.append(this.delimiter);
today.append(df.format(calendar.get(Calendar.MONTH)+1));
today.append(this.delimiter);
today.append(df.format(calendar.get(Calendar.DATE)));return today.toString();
}
}
# myCalendar.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import = "itexpert.chap04.*"%>
<jsp:useBean id = "myCal" class="itexpert.chap04.MyCalendar" scope = "page"/><html>
<head>
<title>예제 4-2</title>
</head><body>
<center>
<h2>기본 출력 형태</h2>
<hr>
<table border=1>
<tr><td colspan = "2" bgcolor=yellow><font color=blue>기본 출력 형태</font></td>
</tr>
<tr>
<td><font size= 2>오늘 날짜는 </font></td><td><jsp:getProperty name="myCal" property="today"/></td>
</tr><tr>
<td colspan = 2 bgcolor="yellow"><font color=blue>구분자로 "-"를 주었을 때</font></td>
</tr><tr>
<jsp:setProperty name="myCal" property="delimiter" value="-"/>
<td><font size=2>오늘 날짜는 </font></td><td><jsp:getProperty name="myCal" property="today"/></td>
</tr><tr>
<td colspan=2 bgcolor="yellow"><font color=blue>구분자로 ""를 주었을 때</font></td>
</tr><tr>
<jsp:setProperty name="myCal" property="delimiter" value=""/>
<td><font size=2>오늘 날짜는 </font></td><td><jsp:getProperty name="myCal" property="today"/></td>
</tr>
</table>
</center>
</body>
</html>
------ Get/Set 이해가 되세요? ^ㅡ^
---------------------------------모르겠으면 댓글 ㅠ_ㅠ
JSP에서 자바 빈즈 사용하기
- 자바 빈즈 설계 규약
- 자바 빈즈 컴포넌트의 속성(Property)들은 읽기, 쓰기 중 적어도 하나 이상의 기능을 수행할 수 있어야 합니다.
- 이러한 기능은 getXXX()와 setXXX(PropertyClass pro)형식의 메소드를 사용해서 가능하게 되는데, 읽기의 기능을 수행하기 위해서는 getXXX()를, 쓰기의 기능을 수행하기 위해서는 setXXX()를 사용합니다.
- 그리고 속성을 다루는 메소드는 매우 간결하게 구성되어야 하는데, get은 파라미터를 받지 않는 형태이며, set은 하나의 매개 변수를 받는 메소드여야 합니다.
- [정리하자면]
- 생성자는 파라미터가 없어야 합니다.
- 자바 빈즈 컴포넌트의 속성들은 읽기, 쓰기 중 적어도 하나 이상의 기능을 수행해야 합니다.
- getXXX()는 파라미터를 받지 않습니다.
- setXXX(.... xxx)는 반드시 하나의 파라미터를 받아야 합니다.
-
JSP에서 자바 빈즈를 사용하려면.
-
<jsp:useBean/>
<jsp:useBean id = "myInfo" class="chap04.MyInfo" scope="page"/>
-
또는.
<jsp:useBean id = "myInfo" class="chap04.MyInfo" scope="page">
<jsp:setProperty name="myInfo" property="age"/>
</jsp:useBean>
'Languages > JSP' 카테고리의 다른 글
JSP- JSP에서 사용가능한 컴포넌트(Editor, chart, report ...) - 예제 (0) | 2012.10.26 |
---|---|
JSP - 스크립트 요소 (0) | 2012.10.26 |
JSP - 컴포넌트 - SmartEditor JSP에 적용하기 (5) | 2012.10.26 |
JSP - 세션관리 (0) | 2012.10.26 |
JSP - 내장객체 (0) | 2012.10.26 |