DBCP 1.4 API 의 사용방법

1. DBCP 관련 Jar 파일 및 JDBC 드라이버 Jar 파일 설치하기
   1)Downloads
   2)Downloads Jar files
- DBCP API 관련 Jar 파일 : commons-dbcp-1.4-bin.zip
- DBCP API 가 사용하는 자카르타 Pool API 의 Jar 파일 : commons-pool-1.5.5-bin.zip
   3)위의 파일의 압축을 풀고 각각의 jar 파일을 WEB-INF\lib\ 폴더에 import 한다.
        - commons-dbcp-1.4.jar, commons-pool-1.5.5.jar

   
2. 커넥션 풀 관련 설정 파일 및 초기화하기
   1) 설정파일은 jocl 로 만들어지며 WEB-INF\classes\ 폴더밑에 저장한다.
  
   소스파일) \WEB-INF\classes\pool.jocl
*********************************************************************************************************
<object class="org.apache.commons.dbcp.PoolableConnectionFactory"
   <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
      <string value="jdbc:oracle:thin:@localhost:1521:XE" />   <!-- URL -->
      <string value="scott" />                                     <!-- user -->
      <string value="tiger" />                                     <!-- password -->
   </object>
  
   <object class="org.apache.commons.pool.impl.GenericObjectPool">
      <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
      <int value="10" />                                          <!--  maxActive -->
      <byte value="1" />                                         <!--  wait mode -->
      <long value="10000" />                                  <!--  wait time 10000 ms -->   
      <int value="10" />                                           <!-- maxIdel -->
      <int value="3" />                                             <!-- minIdel --> 
      <boolean value="true" />                                
      <boolean value="true" />
      <long value="600000" />
      <int value="5" />
      <long value="3600000" />
      <boolean value="true" />
   </object>
  
   <object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory" null="true" />


   <string null="true" />
  
   <boolean value="false" />
  
   <boolean value="true" />
</object>

*********************************************************************************************************

3. 커넥션 풀 관련 드라이버 로딩하기

소스파일) \WEB-INF\src\com\javasoft\db\DBCPInit.java
*********************************************************************************************************
package com.javasoft.db;

import javax.servlet.http.HttpServlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import java.util.StringTokenizer;

public class DBCPInit extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
        try {
            String drivers = config.getInitParameter("jdbcdriver");
            StringTokenizer st = new StringTokenizer(drivers, ",");
            while (st.hasMoreTokens()) {
                String jdbcDriver = st.nextToken();
                Class.forName(jdbcDriver);
            }            
            Class.forName("org.apache.commons.dbcp.PoolingDriver");            
        } catch(Exception ex) {
            throw new ServletException(ex);
        }
    }
}

*********************************************************************************************************

4. 웹 어플리케이션이 시작될 때 DBCPInit 서블릿 클래스가 시작될 수 있도록 지정하기

소스파일) \WEB-INF\web.xml
*********************************************************************************************************
<?xml version="1.0" encoding="euc-kr"?>
....
....
  <servlet>
     <servlet-name>DBCPInit</servlet-name>
     <servlet-class>com.javasoft.db.DBCPInit</servlet-class>
     <load-on-startup>1</load-on-startup>
     <init-param>
        <param-name>jdbcdriver</param-name>
        <param-value>oracle.jdbc.driver.OracleDriver</param-value>
     </init-param>
  </servlet>
</web-app>
*********************************************************************************************************

5. 커넥션을 가져오는 DBUtil 클래스
  - 커넥션을 구하는 클래스인 별도의 DBConn 클래스를 작성하는것이 개발하는데 편리하다.

소스파일) \WEB-INF\com\javasoft\db\DBConn.java
********************************************************************************************************
package com.javasoft.db;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class DBConn {
    public static Connection getConnection(String poolName)
    throws SQLException {
        return DriverManager.getConnection(
            "jdbc:apache:commons:dbcp:/"+poolName);
    }
}
*********************************************************************************************************
6. 사용방법
    - 커넥션을 구하는 곳에 다음과 같이 해주면 된다.
try {
   conn = DBConn.getConnection("pool");

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

JSP EL(Express Language) 표현언어  (0) 2011.03.24
JSP Custom Tag  (1) 2011.03.24
JavaBean  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24
JSP 의 내장객체  (1) 2011.03.24
Java & JavaBean
1. Component-based Development
1) Component?
-특별한 기능을 수행하기 위해 독립적으로 개발/보급되고,
-잘 정의된 인터페이스를 가지며,
-다른 컴포넌트들과 조립되어
-응용 프로그램에 활용할 수 있는 
-소프트웨어 단위(부품)이다.
2)지원특성
-식별 가능(Identifiable)
-추적 가능(Traceable)
-교체 가능(Replaceable)
-인터페이스를 통해 접근 가능(Accessible)
-독립적으로 개발/테스트/재사용 가능
-캡슐화(Encapsulated)
3)장점
-개발기간 단축
-개발비용감소
-생산성 증대
-리스크 감소
-일관성 확대
-최고 솔루션 제공
4)단점
-설계기간 연장
-개발자교육필요
5)JSP 에서 컴포넌트를 사용하면서 얻을 수 있는 장점
-프리젠테이션과 비즈니스 로직의 분리-역할분담
-컴포넌트 재사용을 통한 생산성 향상
-유지 보수의 용이

2. JavaBeans
1)개발스펙
-상속에 대한 제한 없다.
-반드시 클래스를 패키지해야 한다.
-필요에 따라 직렬화를 할 수 있다.
-필요에 따라 기본생성자를 생성할 수 있다.
-멤버변수를 property 라고 부른다.
-Bean 에서 사용할 property는 반드시 private 접근제한자를 가져야 한다.
-private 접근제한자를 갖고 있는 property에 접근/설정하기 위해서는 반드시 public 메소드를 사용해야 한다.
-public 메소드는 반드시 setXxx()/getXxx()의 형식을 취해야 한다.
-만일 property 의 데이타타입이 boolean 형이면 getXxx() 대신 isXxx() 메소드 타입을 취한다.
-추가적으로 필요한 메소드를 정의할 수 있다.

2)컴포넌트의 저장 위치
-WEB-INF\classes\

3. <jsp:useBean />
-JavaBean 객체를 생성하거나 이미 생성된 객체를 추출하는 태그
-객체의 디폴트 생성자만 호출
1) <jsp:useBean id="" class="package.class" scope="page|request|session|application" />
a. id
-Java 식별자 규칙 적용
-주어진 페이지에서 유일한 이름
-대소문자 구별
-문자로 시작
b. class
-사용하고자 하는 클래스이름을 전체이름으로 지정

4. <jsp:getProperty />
-JavaBean 객체의 property 값을 추출할 경우
-JavaBean 의 getXxx() 호출
1) <jsp:getProperty name="" property="" />
a. name
-useBean 의 id 와 동일한 이름사용

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

JSP Custom Tag  (1) 2011.03.24
JSP DBCP 사용하기  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24
JSP 의 내장객체  (1) 2011.03.24
JSP 페이지 구성요소  (1) 2011.03.24
1. Action Tag?
- JSP 스펙에 의해 미리 구현과 정의가 된 태그
- prefix 가 jsp로 시작하고 xml 코딩규칙을 지켜야 한다.
- 반드시 대소문자 구별
- 종류
<jsp:include />
<jsp:forward />
<jsp:param />
<jsp:plug-in />
<jsp:useBean />
<jsp:setProperty />
<jsp:getProperty />

2. include Action Tag
1) RequestDispatcher의 include("/...")
2) pageContext 내장객체의 include(상대URL)
3) <%@ include file="" %>
4) <jsp:include page="" flush="false|true" />
-경로는 상대경로만 가능
5) include directive 와 include action tag 차이점 구별할 것

3. forward Action Tag
1) RequestDispatcher의 forward("/...")
2) pageContext 내장객체의 forward(상대URL)
3) <jsp:forward page="" />

4. param Action Tag
1) forward 하거나 include 하면서 파라미터를 전송할 때 사용
2) <jsp:param name="" value="" />



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

JSP Custom Tag  (1) 2011.03.24
JSP DBCP 사용하기  (2) 2011.03.24
JavaBean  (2) 2011.03.24
JSP 의 내장객체  (1) 2011.03.24
JSP 페이지 구성요소  (1) 2011.03.24
JSP 내장객체(기본객체) - implicit object
-별도로 개발자가 객체 선언없이 사용할 수 있는 객체
-내장객체의 변수는 반드시 __jspService() 메소드속에서만
  사용가능하다. 예를 들면 jsp 선언부에서는 사용할 수 없다.
-내장객체변수중 exception 변수는 isErrorPage=true인 
  페이지에서만 사용할 수 있다.
1. request
-javax.servlet.http.HttpServletRequest or
javax.servlet.ServletRequest
-GET, POST
-한글처리 확인해야
a. jsp 자체의 encoding --> @page contentType
b. post 방식 --> request.setCharacterEncoding();
c. get 방식 --> server.xml 이 <Connector.....URIEncoding = />
-주요메소드
a. request.getParameter(str);
b. String [] array = request.getParameterValues();
c. getRequestURI();
d. getServletPath();
e. getHeader(str);

2. response
-javax.servlet.http.HttpServletResponse or
javax.servlet.ServletResponse
-주요메소드
a. setHeader();
b. setStatus(int);
c. sendError(int);
d. sendRedirect(절대URL, 상대URL);

3. out
-javax.servlet.jsp.JspWriter 
-주요메소드
a. print() & println()
b. clear() & clearBuffer(), flush() 
c. getBufferSize(), getRemaining()

4. session
-javax.servlet.http.HttpSession

5. application
-javax.servlet.ServletContext
-주요 메소드
a.  getServerInfo()
b.  getResource()
c.  getRealPath()
d.  getContextPath()
e.  log(str)

6. pageContext
-javax.servlet.jsp.PageContext
-주요 메소드
a. 8개의 내장객체변수를 반환받을 수 있다.  getXxx()
b. forward(상대URL); include(상대URL);

7. config
-javax.servlet.ServletConfig
-주요메소드
a. getServletName()
b. getInitParameter()
    --web.xml
    <servlet>
   <servlet-name></servlet-name>
   <servlet-class></servlet-class>
   <init-param>
   <param-name></param-name>
   <param-value></param-value>
   </init-param>
  </servlet>

8. page
-java.lang.Object

9. exception
-java.lang.Throwable

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

JSP Custom Tag  (1) 2011.03.24
JSP DBCP 사용하기  (2) 2011.03.24
JavaBean  (2) 2011.03.24
JSP Action Tag  (1) 2011.03.24
JSP 페이지 구성요소  (1) 2011.03.24

+ Recent posts