서블릿의 비즈니스 로직 처리방법
- 웹 프로그램은 클라이언트의 요청에 대해 비즈니스 처리 기능을 이용해 데이터 저장소에서 데이터를 조회한 후 서블릿의 응답 기능을 이용해 클라이언트에게 결과를 전송함
ex)
1. 온라인 서점에서 책 제목을 검색창에 입력 + 검색 버튼을 누름
2. 책 제목이 서블릿으로 전송됨(프론트에서 책 제목을 받아와 백으로 넘김)
3. 서블릿은 책 제목을 전송받아 책에 대한 정보를 DB 연동 기능을 이용해 조회
4. 조회한 결과를 서블릿 응답 기능을 이용해 클라이언트 브라우저에 전송하여 결과를 보여줌
서블릿 비즈니스 처리 작업
- 서블릿이 클라이언트로부터 요청을 받아 그 요청에 대해 작업을 수행하는 것
- DB 연동 작업(대부분)
- 다른 서버와 연동해 데이터를 얻는 작업
ex) 웹 사이트 회원 등록 요청 작업, 로그인 요청 처리 작업, 쇼핑몰 상품 주문 처리 작업
- 클라이언트로부터 요청을 받음
- DB 연동과 같은 비즈니스 로직을 처리
- 처리 결과를 클라이언트에게 돌려줌

출처 : 자바 웹을 다루는 기술 책
DataSource를 이용해 DB 연동하기

- 위의 사진처럼 필요할 때마다 DB를 연동해서 작업하면 DB 연결에 시간이 많이 걸리고, 비효율적이다
- 그래서 현재는 웹 애플리케이션이 실행됨과 동시에 연동할 DB와의 연결을 미리 설정해 두고, 필요 시 미리 연결해 둔 것을 통해 DB와 연동해 작업한다 -> 커넥션 풀
ConnetionPool(커넥션풀)
- 미리 DB와 연결시킨 상태를 유지하는 기술
- 동작 과정
1. 톰캣 컨테이너를 실행한 후 응용프로그램을 실행
- 톰캣 컨테이너 실행 시 ConnectionPool 객체를 생성
- 생성된 커넥션 객체는 DBMS와 연결
- DB와의 연동 작업이 필요할 경우 응용 프로그램은 ConnectionPool에서 제공하는 메소드를 호출하여 연동
- ConnectionPool 객체 구현 : javax.sql.DataSource 클래스 이용
- ConnectionPool 객체 접근 : JNDI(Java Namimg and Directory Interface, 필요한 자원을 key-value 쌍으로 저장한 후 필요시 키를 이용해 값을 얻는 방법) -> 미리 접근할 자원에 key를 지정한 후 애플리케이션이 실행 중일 때 key를 통해 자원에 접근해서 작업하는 것
JDBC 드라이버를 /test/src/main/webapp/WEB-INF/lib 안에 설치해주어야 한다.

톰캣 서버의 설정 파일 위치

context.xml 파일에서의 < Resource > 태그로 톰캣 실행 시 연결할 DB를 설정함
