본문 바로가기

Development

Netbeans 와 함께 JSP 웹프로젝트 기본 - JSTL 을 통해 데이터베이스 접근과 기본 쿼리 전송

JSP 2.0 이상의 환경에서 개발한다면 태그와 함께 톰켓이나 썬의 글래스피쉬 등의 웹 서버, 웹 컨테이너가 제공하는 데이터베이스 커넥션을 사용하는 방법이 가장 쉬운거 같아요. 그렇지? 커넥션 리소스 신경안써도 되고 풀도 제공해주는 영리한 컨테이너 덕에 코드를 많이 줄일 수 있다네요.

가볍게 정리해보았음! 여기에 사용된 JSTL 태그 몇개는 지난 포스트에서 살펴본 거에요. 참고~

먼저 환경 설치는 이렇게

저는 넷빈즈에서 제공하는 번들을 통해 환경을 구축했습니다. 아래 보듯 JDK6 를 설치하고 넷빈즈 6.5 최종릴리즈 전 버전을 설치했습니다. 풀 패키지를 설치했는데 설치할 때 옵션에서 글래스피쉬를 설치했답니다. 톰켓도 있지만 기왕 썬 제품을 쓰는거 올인해보자는 생각에... ㅋㅋ

  • JDK5 이상
  • JSTL1.1
  • GLASSFISH V2
  • NETBEANS 6.5 ( 6.1 도 가능합니다 )

완소 넷빈즈

위 모든것을 한방에 제공하는 썬 제품

넷빈즈에서 웹프로젝트 생성

넷빈즈에서 웹프로젝트를 생성합니다. 프로젝트에 프레임워크는 사용하지 않고 라이브러리에 JSTL1.1 만 추가해줍니다.

간단하게 스크립트릿 테스트와 JSTL 태그를 적용하여 JSP 환경이 구축되어 있는지 확인합니다.

<h1>Hello World!</h1>
Core tag test : 1+3 = <c:out value="${1+3}" />
<%="스크립트릿 점검"%>
<c:set var="i" value="0" />


그다음 데이터베이스 커넥션을 점검할 차례인데요. 데이터베이스는 JAVA DB 라고 불리는 아파치 DERBY 를 사용했습니다. 공부하기 위함이니 구지 MYSQL 까지도 필요없지요? (사실은 설치하기 귀찮고 덩치도 좀 있고. 아파치 더비는 정말 작고 귀엽습니다 ;;;;)



웹 컨테이너에 데이터베이스 정보 등록

프로젝트의 WEB.XML 파일에 데이터베이스 정보를 등록하면 해당 프로젝트에서 자유롭게 데이터베이스 커넥션을 사용할 수 있네요. JSTL 과 함께 한다면 반드시 거쳐야할 과정입니다.

넷빈즈에서 WEB.XML 파일을 열어 CONTEXT PARAMETERS 항목에 커넥션 정보를 추가합니다. 커넥션 정보는 더비를 온라인 시키고 더비의 데이터베이스 정보에서 찾아낼 수 있습니다. 저는 기본적으로 제공하는 SAMPLE 데이터베이스를 사용했습니다.

더비의 데이터베이스에서 오른쪽 클릭하여 프로퍼티에서 발견할 수 있는 정보는 아래 그림처럼
자 그럼 데이터베이스가 잘 연결되었는지 점검해볼까요. 유저 아이디와 패스워드는 같은 가봐요.

<sql:query var="productList">
        select PRODUCT_ID,PRODUCT_CODE,MARKUP,DESCRIPTION from product
</sql:query>

아무것도 출력하지 않고 (아직은) 쿼리만 날려봅니다. 웹 페이지가 에러를 출력하지 않는다면 성공

JSTL태그 시전

이제 JSTL 태그를 공부하면서 이리저리 구경해보아요. 아무래도 테이블의 컬럼과 값을 자유자제로 가져오는게 가장 급하죠? 그리고 가장 자주 사용되기도 하구요. 테이블 정보를 살펴보려면 넷빈즈에서 제공하는 SQL 에디터를 써봅니다.

컬럼 명만 골라서 뽑아오기 "columnNames" 이라는 키워드입니다.

<h3>전체 컬럼명만 뽑기</h3>
    <c:forEach var="oneCol" items="${productList.columnNames}">
        ${oneCol}<br />
    </c:forEach>


컬럼 갯수 알려주셈 "rowCount" 라는 키워드

    <c:out value="레코드 갯수 : ${productList.rowCount}" />

특정 컬럼만 쌍으로 출력해봅시다. 레코드셋에서 각 컬럼명으로 빼오는 거랑 거의 똑같죠?

<h3>특정 컬럼만 뽑기 - 프로덕트 코드 - 아이디 - 설명</h3>
    <c:forEach var="row" items="${productList.rows}">
        ${row.product_code} - ${row.product_id} - ${row.description}<br />
    </c:forEach>

아 귀찮아 한방에 다 보여줘봐. 이러고 싶을 경우 아래처럼 코드 작성~

<c:forEach var="row" items="${productList.rows}">
    <c:forEach var="col" items="${row}">
        ${col.key} : ${col.value} <br />
    </c:forEach><br />
</c:forEach>

참 쉽죠? (아래는 넷빈즈 에디터 환경)

'Development' 카테고리의 다른 글

개발 개요 및 데이터베이스 구현  (0) 2009.09.14
그레일즈 한글 레퍼런스  (0) 2008.10.31
JSP 2.0 JSTL 태그 - Database 액션  (0) 2008.10.22
파이썬 튜토리얼  (0) 2008.10.21
NetBeans Wiki: JavaFXApplet  (0) 2008.10.17