기본 콘텐츠로 건너뛰기

1.05 Java Web Programming (2)

Java Web Programming (2)


1. Client form data 처리 방식
2. init-Param & servletConfig & servletContext
3. Connection Pool, DataSource
4. 정리

1. Client form data 처리 방식


1) URL
 - 유지 관리에 안 좋음
 - 사용하는 PC를 옮기면(IP가 변경되면) 작동하지 않음 = IP에 종속적

2) URI
 - 절대경로
 - port 후단부터 주소를 읽어들임

3) R-URI
 - 상대경로
 - 유연한 개발이 가능
 - 표준화된 폴더구조의 root에 종속되는 경우를 방지할 수 있다


2. init-Param & servletConfig & servletContext




1) ServletConfig
 - 하나의 Servlet에서 사용할 수 있는 파라미터(parameter)값
 - init 메서드 수행 시 1번 읽고 계속해서 사용 가능
 - servelt당 1개씩 존재
 - init-param tag 안에 있는 parameter에 의해 Servlet Container가 setting
 - ServletConfig에 어떠한 값을 설정하고자 하면 web.xml에 정의 후 getInitParameter()를 이용해서 사용할 수 있음

2) ServletContext
 - context: 자원창고(information box)
 - 하나의 context에서 여러 파일 간에 자원을 공유 (딱 1개만 존재)

3) init-param
 - 해당 servlet에서 사용할 수 있는 초기 파라미터(parameter)
 - key = value의 형태로 정적인 데이터를 제공

3. Connection Pool, DataSource

<connection pool 개요도>

1) connection pool
 - 오라클 커넥션 풀로부터 커넥션 인스턴스 호출
    OracleConnectionPool.getInstance().getConnection()

 - 미리 일정 수의 connection을 생성해놓고 필요한 application에 전달하여 이용하는 방식
 - container 구동 시 일정 수의 connection 객체를 생성, 
   client의 요청이 있으면 applicationon이 DBMS를 수행
 - connection pool에서 객체를 받아서 작업하고 작업이 끝나면 반납

<DataSource 및 2 layer architecture 개요>



2) dataSource
 - connection pool을 spec화한 interface, javax.sql.DataSource 이용
 - 복수로 운용되는 connection을 application에서 직접 이용하면 관리가 어렵다
 - 객체 관리 서버에서 lookup()를 이용해서 dataSource 객체 찾기
 - getConnection() 메서드를 통해서 connection pool에서 빈 connection 객체 get
 - 작업이 끝나면 dataSource 객체를 통해 connection pool에 connection 객체 반납
 - 운영, 관리, 최적화, 대응에 장점: DataSource를 WAS에 설정

※ 2 layer architecture: view와 model을 분리해서 개발 - 커플링 관계 낮추기


4. 정리

client와 server 연결
servlet life cycle 표준화된 폴더 구조
VO, DAO(JDBC)
connection pool