백문이불여일타

Jsp&Servlet:: JNDI란? , 이클립스 톰캣 DataSource 설정방법 본문

Java

Jsp&Servlet:: JNDI란? , 이클립스 톰캣 DataSource 설정방법

퇴근각 2019. 7. 19. 20:09

JNDI란?

실제 웹 어플리케이션에서 ConnectionPool 객체를 구현할 때는 Java SE에서 제공하는 javax.sql.DataSource 클래스를 이용한다.

그리고 웹 어플리케이션실행시 톰캣이 만들어 놓은 ConnectionPool 객체에 접근 할때는 JNDI를 이용한다.

JNDI(Java Naming and Directory Interface) 란? 

필요한 자원을 키/값(key/value)쌍으로 저장한 후 필요할때 키를 이용해 값을  얻는 방법이다.

즉, 미리 접근할 자원에 키를 지정한 후 애플리케이션이 실행 중일때 이 키를 이용해 자원에 접근해서 작업을 하는것이다.

 


JNDI사용 예

  • 웹 브라우저에서 name/value 쌍으로 전송한 후 서블릿에서 getParameter(name)로 값을 가져올때

  • 해시맵(HashMap) 이나 해시테이블(HashTable)에 키/값으로 저장한 후 키를 이용해 값을 가져올때

  • 웹 브라우저에서 도메인네임으로 DNS서버에 요청할 경우 도메인 네임에 대한 IP주소를 가져올때

톰캣 컨테이너가 ConnetionPool 객체를 생성하면 이 객체에 대한 JNDI 이름(key)을 미리 설정해 놓는다.

그러면 웹 애플리케이션에서 데이터베이스와 연동 작업을 할때 이 JNDI 이름(key)로 접근해서 작업한다.

 


이클립스에서 톰캣 DataSource 설정

 

JDBC 드라이버와 ConnetionPool 기능을 사용하려면 이 기능을 제공하는 DBCP 라이브러리를 따로 다운받아야한다.

이 라이브러리 파일은 JAR 압축파일 형태로 제공되어서, 

아래 링크통해 다운받아야한다.

 

▼ JAR 파일 다운링크

http://www.java2s.com/Code/Jar/t/Downloadtomcatdbcp7030jar.htm

 

 

 

 

 

아래 그림은 JDBC 드라이버와 ConnetionPool 관련 jar 파일 및 이클립스에서 생성한 톰캣서버의 설정파일인 context.xml의 위치를 알수 있다.

 

▼ConnectionPool 관련 라이브러리

▼context.xml 의 파일위치 


Servers -> context.xml 파일을 보면 <Resource> 태크를 이용해 톰캣 실행 시 연결할 데이터베이스를 설정하는것을 알수있다.

자바 클래스에서는 다음과 같이 name속성의 jdbc/oracle로 DataSource에 접근한다.

오라클 데이터베이스(정확히는 오라클DBMS)를 연결할때 다른 속성들은 고정적으로 사용하며,

프로그래머가 주로 설정하는 정보는 driverClassName, user, password, url만 변경해서 설정한다.

 

▼ConnectionPool로 연결할 데이터베이스 속성


톰캣의 DataSource  설정 및 사용 방법

아래는 실제 웹 애플리케이션에서 톰캣이 제공하는 ConnectionPool 객체를 이용해 데이터베이스와 연동하는 과정이다.

 

▼톰캣 ConnectionPool 설정과정

 

'Java' 카테고리의 다른 글

Jsp&Servlet::DataSource ,ConnectionPool이란?  (0) 2019.07.19
Jsp&Servlet:: PrepareStatement란? _실습포함  (0) 2019.07.19
DTO, VO 차이점  (0) 2019.07.19
DTO,DAO 차이점  (0) 2019.07.19
Comments