Feb 26, 2009 - sqlMapConfig

sqlMapConfig

properties resource=”데이타베이스 설정한 곳 주소”
알바티스를 위한 셋팅, 정의는 되어있으나 특별하게 셋팅할 필요는 없습니다.

<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>

cacheModelsEnabled : 한번 사용했던 데이타는 나중에 또 언젠가는 쓸지 모르니 caching 하여 사용할 것인지 확인 useStatementNamespaces : 여러개의 sqlMap의 namespace 가 BlogUser 라 할때, resource 가 존재했을때 유용함, id로만 접근할 것인가, 아미녀 sqlmap.statement이름으로 구성할 것인지를 확인

<typeAlias alias="full pacage 에 대한 별칭을 알려줌">

JDBC, SIMPLE 같은 경우에는 iBATIS가 별칭으로 해당 명칭을 매칭시켜줍니다.

<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="url을 읽어옴.">
JDBC : 트랙젝션을 그대로 사용
EXTERNAL : 사용자가 직접
JTA :  2기종간의 데이터베이스 여러가지의 DB를 하나로 관리가능
SIMPLE : (내가 집적) 알바티스 설정 문서 안에서 DB 커넥션을 얻거나, 데이터 소스 설정을 얻을 수 있습니다.
JNDI : 컨테이너가 제공하는 WAS가 제공해주는 DB 소스를 사용
DBCP : 자카르타의 DBCP

최종적으로 소스에 가장 상위에는

SqlMapConfig.xml
SqlMap.xml .. . .. . . . ...

가 하나가 되서 iBATIS 로 이루어져있습니다.
파라미터를 넘기고 결과를 객체로 받거나 XML로 받거나 하는 형태가 iBATIS 를 의미합니다.
settings 요소를 건드릴 필요는 없습니다.

Feb 24, 2009 - web.xml 자동 한글변환

web.xml 한글 변환 관련 Encoding 설정 방법

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package kr.co.ithrd.common;

import java.io.*;
import javax.servlet.*;


public class CharacterEncodingFilter implements Filter {
    FilterConfig fc;

    public void init(FilterConfig fc){
        this.fc = fc;
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
        try {
            request.setCharacterEncoding(fc.getInitParameter("characterEncoding"));
        } catch (UnsupportedEncodingException uee) {
            uee.printStackTrace();
        }
        chain.doFilter(request, response);
    }

    public void destroy(){}
}

위의 소스는 필터 기능을 통해, 넘어온 캐릭터셋으로 변경하는 로직입니다.

web.xml 안에

    <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>kr.co.ithrd.common.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>characterEncoding</param-name>
        <param-value>UTF-8</param-value>
        </init-param>
    </filter>

    <filter-mapping>
     <filter-name>CharacterEncodingFilter</filter-name>
     <url-pattern>/*</url-pattern>
    </filter-mapping>

    <servlet>

이 구문을 선언해주시면됩니다.

간단하게 소스를 설명하자면, filter 이름이 CharacterEncodingFilter로 mapping 시키고 url-pattenr 이 * 인 파일은 (즉, 전부) 해당 Filter 를 타도록 하는 방법입니다.

java 파일 디컴파일 하면, 해당 클래스는 결국 Filter 를 implements 받습니다.

Feb 1, 2009 - Servlet Container에서 JAR 파일 설치 시 주의할 점

Tomcat4.X의 경우

commons-collection.jar, commons-logging.jar

Tomcat5.X인 경우

commons-collections.jar

해당 파일이 이미 Tomcat의 common/lib에 이미 설치되어 있으므로 일부 이긴 하지만 jar 파일이 충돌이 나는 경우가 있을 수 있습니다.

작성하는

Web Application의 WEB-INF/lib

에는 이런 파일을 lib 폴더에 넣지 않는 것이 좋습니다.

PS . 가끔가다가 jar 파일을 JRE 에다가 넣어야할 때가 있고, JRE에 넣었는데도 서블릿에서 찾지 못할 경우에는 서블릿 쪽에다가 넣어야할 때도 존재합니다.

그럴때는 두군대에 같은 jar 파일을 넣어두었다는 것을 꼭 기록에 남겨두록 합시다. ^-^; 언제 다른 서블릿 컨테이너와 충돌날지 장담할 수 없으니까요. ^-^