본문 바로가기
Web/JSP

JSP(4) - 서블릿 비즈니스 로직 추가

by SeleniumBindingProtein 2022. 1. 28.
728x90
반응형

1. 서블릿의 비즈니스 로직 처리 작업
    1) 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 수행을 하는 것
    2) 대부분의 비즈니스 처리 작업은 데이터베이스 연동 관련 작업, 그외에 다른 서버와 연동해서
       데이터를 얻는 작업도 수행
    3) 서블릿의 가장 핵심 기능 

2. 서블릿의 비즈니스 처리 예
    1) 웹 사이트 회원 가입 요청 처리 작업
    2) 웹 사이트 로그인 요청 처리 작업 
    3) 쇼핑몰 상품 주문 처리 작업 

3. 서블릿의 비즈니스 처리 과정
    1) 클라이언트로부터 요청을 받음
    2) 데이터베이스 연동과 같은 비즈니스 로직을 처리함 
    3) 처리 결과를 클라이언트에게 돌려줌    

4. 서블릿의 데이터베이스 연동하기
    1) 서블릿, DAO(Data Access Object), VO(Value Object), DB 
    2) 순서
        - 웹 브라어저가 서블릿에게 회원 정보 요청함.
        - MemberServlet은 요청을 받음,
          MemberDAO 객체를 생성후 listMembers() 메서드를 호출함.
        - listMembers()에서 connDB() 메서드로 데이터베이스와 연결 후 
          SQL 문 실행함.
        - 조회된 회원 정보를 MemberVO 속성에 설정한 후 
          ArrayList에 저장함.
        - ArrayList의 MemberVO를 차례대로 가져와 회원 정보를 HTML 태그 문자열로 만듦.
        - 만들어진 HTML 태그를 웹 브라우저로 전송함.      
    3)  PreparedStatement를 이용해 회원 정보 조회
        - PreparedStatement 인터페이스 특징
            - Statement 상속하므로 지금까지 사용한 메서드를 그대로 사용함.
            - 성능향상시킴
            - SQL문 '?'를 넣을 수 있으므로 '?'의 값만 바꾸어 손쉽게 설정가능.

5. DataSource 이용해 데이터베이스 연동하기    
    1) ConnectionPool 등장배경    
        - 애플리케이션에서 DB 연결과정에 시간이 많이 걸림 (기존 연동 방법 문제점)    
        - ==> 미리 Connection 객체를 생성한 후, 미리 데이터베이스 연결을 맺음.
              애플리케이션은 DB 연동 작업 발생시 이 Connection 객체를 이용해서 작업함.

    2) JNDI (Java Naming and Directory Interface)
        - 필요한 자원을 키/값(key/value)쌍으로 저장한 후 필요할때 키를 이용해 값을 얻는 방법.
        - 커넥션풀에 적용
            - 톰캣 컨테이너가 ConnectionPool 객체를 생성하면
              이 객체에 대한 JNDI 이름(key)을 미리 설정해 놓음.
            - 그러면 웹 애플리케이션에서 DB와 연동 작업할때 이 JNDI 이름(key)으로 접근하여 
              작업을 수행함.    
    3) 이클립스에서 톰캣 DataSource 설정
        - Context.xml 파일에 <Resource> 태그를 이용해 톰캣 실행시 연결할 DB를 설정.

        <Resource 
            name="jdbc/oracle"                          DataSource에 대한 JNDI 이름.
            auth="Container"                            인증주체
            type="javax.sql.DataSource"
            driverClassName="oracle.jdbc.driver.OracleDriver"
            url="jdbc:oracle:thin:@localhost:1521:XE"
            username="wdsql"
            password="0311"
            maxActive="50"                        동시에 최대로 DB에 연결할수 있는 Connection수
            maxWait="-1"                          동시에 idle상태로 대기할수 있는 최대 시간   
        />

728x90
반응형

'Web > JSP' 카테고리의 다른 글

JSP(6) - 회원정보등록, 삭제하기  (0) 2022.01.28
JSP(5) - JDBC연동과 관련객체  (0) 2022.01.28
JSP(3) - 서블릿  (0) 2022.01.28
JSP(2) - 웹 어플리케이션과 서블릿 이해  (0) 2022.01.28
JSP(1) - 웹프로그래밍 소개  (0) 2022.01.28

댓글