본문 바로가기

web/JSP

JSP NULI 테이블을 이용한 로또 view

jsp를 배우는 김에 표준을 따르자고 생각해서 웹 표준에 관해서 글도 읽고~ 따라도 하는데..
외국꺼는 뭐라는 건지도 모르겟고 그나마 우리나라에서는 네이버의 NULI 가 가장 활발한거 같다.
저번에 sql에 밀어넣은 로또 번호를 토대로 표준에 맞는 테이블을 그려 보았다.(간단하다.)

http://html.nhndesign.com/ui_pattern_table <- 테이블에 대한 css, 태그를 볼수 있다.
이중에서 5번째 보더형 테이블을 이용하였다.

관리하기 쉽도록 CSS 파일들은 따로 폴더를 이용해서 관리 하고 있다.


jsp파일에 <link>태그를 써서 경로만 써주면 바로 읽어 올수 있으니 되도록 이면 이렇게 관리하고 있다. 



중요한 부분은 Lotto 클래스를 따로 만들어서 최대한 MVC모델2 방식으로 만들었다. 


1. 버튼을 누르게 되면 서블릿을 호출한다.(여기선 lottoServlet.java 파일이라 해보자.)
그러면 lottoServlet.java 파일은 DB커넥션과 lotto 클래스를 호출하여 각각의 값을 lotto객체에 담고,
모든 객체를 벡터에 담아서 jsp 파일에 넘겨준다.

String query = "select countnumber as count, " +
            "    lotday as day, " +
            "    firstnumber as first, " +
            "    secondnumber as second, " +
            "    thirdnumber as third, " +
            "    fourthnumber as fourth, " +
            "    fifthnumber as fifth, " +
            "    sixthnumber as sixth, " +
            "    bonusnumber as bouns " +
            "     from lottoData ";
           
           Vector vOldLotto = new Vector();           
           try {           
            rset = stmt.executeQuery(query);
            while (rset.next()) {
                lotto lotto = new lotto();
                lotto.setCountNumber(Integer.parseInt(rset.getString("count")));
                lotto.setLotday(rset.getString("day"));
                lotto.setFirstNumber(Integer.parseInt(rset.getString("first")));
                lotto.setSecondNumber(Integer.parseInt(rset.getString("second")));
                lotto.setThirdNumber(Integer.parseInt(rset.getString("third")));
                lotto.setFourthNumber(Integer.parseInt(rset.getString("fourth")));
                lotto.setFifthNumber(Integer.parseInt(rset.getString("fifth")));
                lotto.setSixthNumber(Integer.parseInt(rset.getString("sixth")));
                lotto.setBonusNumber(Integer.parseInt(rset.getString("bouns")));
                
                vOldLotto.add(lotto);
            }
                rset.close();
            } catch (Exception e) {
               System.out.println("oldLotto.java 에러" + e.getMessage());
                e.printStackTrace();
            }finally{
                this.closeConStmt();
            }
        
      
       return vOldLotto;



2. 서블릿에서 넘겨 받은 벡터를 다시 lotto 객체로 각각 받아서 한줄씩 뿌려 주면 되는것이다.
oldLotto ol = new oldLotto();
Vector vOldLotto = ol.lottoNumberSerach();
for(int i = 0; i<vOldLotto.size(); i++){
    lotto lotto = (lotto) vOldLotto.get(i);
%>
<tr>
<td><%= lotto.getCountNumber()%></td>
<td><%= lotto.getLotday()%></td>
<td><%= lotto.getFirstNumber()%></td>
<td><%= lotto.getSecondNumber()%></td>
<td><%= lotto.getThirdNumber()%></td>
<td><%= lotto.getFourthNumber()%></td>
<td><%= lotto.getFifthNumber()%></td>
<td><%= lotto.getSixthNumber()%></td>
<td><%= lotto.getBonusNumber()%></td>
</tr>
<%
}

값을 가져 오는것을 보면은 벡터에서 로또 객체로 넘겨주고, 다시 로또에서의 get 메소드를 통해서 가져 오는것을 볼수 있다.

3. 결과 화면 (깔끔하다.)


DB커넥션이나 서블릿의 문제가 아닌, 최대한 모델2의 모양을 그리기 위해서 파일을 모델,컨트롤,뷰 부분으로 나뉘어서 만들었다.  모델에서는 로또 객체, 컨트롤에서는 DB커넥션과 벡터로의 리턴과 jsp 선택, 뷰에서는 넘겨 받은 벡터에서의 객체를 추출해서 화면에 뿌려 주는거. 

- 사실 화면상의 view 는 NULI에서 제공하는 코드를 그대로 써서 간편한데 오히려 모델을 그리는게 어려운거 같다.
- 그렇타고 모델2가 무조건 적으로 객체를 통해서 값을 받는건 아니란다..(어렵다..ㅡ,ㅡ)

'web > JSP' 카테고리의 다른 글

JSP eclipse 를 USB 에 담고 다닐순 없을까?!  (0) 2010.10.23
이클립스 단축키 ctrl + shift + o  (0) 2010.10.22
JSP 페이지 에러 처리  (0) 2010.10.20
JSP 내장 객체  (0) 2010.10.19
서블릿 매핑!  (5) 2010.10.18