1. 서블릿의 비즈니스 로직 처리 방법
- 서블릿의 비즈니스 처리 작업 :
1)서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것.
2)웹 프로그램에서 대부분의 비즈니스 처리 작업은 데이터베이스 연동 관련 작업이지만 그 외에 다른 서버와 연동해서 데이터를 얻는 작업도 수행
3)서블릿의 가장 핵심 기능
2. 서블릿의 데이터베이스 연동하기
- MemberDAO, MemverVO와 같은 클래스를 이용해 DB와 통신함.
cf) 자바에서 모든 DBMS에 동일하게 접근할 수 있도록 정의한0 인터페이스와 클래스(=JDBC)를 미리 정의하고 실제 구현은 각 DBMS 개발사에서 한다. DBMS 개발사가 구현한 클래스의 집합을 '드라이버'라고 한다. 자바 애플리케이션 개발자는 표준화된 방법으로 모든 DBMS에 쉽게 접근할 수 있다.
- 자바에서 쿼리문을 실행하게 해주는 statement 객체를 상속하는 preparedStatment는 컴파일된 SQL문을 DBMS에 전달하여 성능을 향상시킴. SQL문에 '?'를 넣을 수 있으므로 '?'의 값만 바꾸어 손쉽게 설정할 수 있어 statement보다 SQL문 작성하기가 더 간단하고 동적임.
3. DataSource 이용해 데이터베이스 연동
- connectionPool : 애플리케이션에서 데이터베이스 연결 과정에서 시간이 너무 많이 걸린다. -> 애플리케이션 실행 시 미리 connection 객체를 생성한 후, 미리 데이터베이스 연결을 맺는다. 애플리케이션은 데이터베이스 연동 작업 발생 시 이 connection 객체를 이용해서 작업을 한다.
- JNDI : 필요한 자원을 키/값 쌍으로 저장한 후 필요할 때 키를 이용해 값을 얻는 방법. 톰캣 컨테이너가 ConnectionPool 객체를 생성하면 기 객체에 대한 JNDI key를 미리 설정해 놓고 웹 애플리케이션에서 데이터베이스와 연동 작업을 할 때 이 JNDI key로 접근하여 작업을 수행한다.
- 톰캣의 ConnectionPool 설정 과정
1) JDBC 드라이버를 /WEB-INF/lib 폴더에 설치
2) ConnectionPool 기능 관련 jar 파일을 /WEB-INF/lib 폴더에 설치
3) CATALINA_HOME\context.xml에 Connection 객체 생성 시 연결할 데이터베이스 정보를 JNDI로 설정
4) DAO 클래스에서 데이터베이스 연동 시 JNDI 이름으로 데이터베이스를 연결해서 작업
cf)DataSource란 DataSourceDB와의 연결을 미리 생성하고, 그것을 관리하는 역할을 하는 오브젝트. 간단히 DataSource는 DB Connection을 관리하는 인터페이스라고 생각하면 된다. 보통 getConnection() 등의 메소드를 지원함.
'Servlet' 카테고리의 다른 글
9장 쿠키와 세션 알아보기 (1) | 2024.01.13 |
---|---|
8장 서블릿 확장 API 사용하기 (1) | 2024.01.11 |
6. 서블릿 기초 (1) | 2024.01.02 |
5장 서블릿 이해하기 (0) | 2023.12.28 |
4장 웹 애플리케이션 이해하기 (0) | 2023.12.23 |