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 파일을 넣어두었다는 것을 꼭 기록에 남겨두록 합시다. ^-^; 언제 다른 서블릿 컨테이너와 충돌날지 장담할 수 없으니까요. ^-^

Jan 29, 2009 - Project facet Java version 5.0 is not supported. 오류

문제 발생

Project facet Java version 5.0 is not supported.
Project facet Java version 6.0 is not supported.

문제에 대한 고찰

1. 새로운 jre 버전을 설치했습니까?
2. 새로운 jre 로 JSP를 작성해야합니까?
3. Project 를 Dynamic Web Project 로 만들었습니까?

현재 사용하는 JRE 버전이 1.5 이면서, JRE를 1.4 를 써야한다던가
여하튼 지금 사용하는 JRE와는 다른 버전을 사용했을 때 이런 문제가 뜹니다.

원인은?

이클립스 안에는 기본값으로 설정된 [Configuration] 항목의 값을 . [Project Facets] 항목의 값이 Dynamic Web Module java 가 기본값을 그대로 사용합니다.

즉, 현재 기본값으로 설정된 다른 버전의 JRE를 그대로 사용하므로서 인한 혹은 기존에 사용된 JRE가 다른 버전으로 바뀌면서 생성되는 에러인 것입니다.

조치 1.

Properties - > Project Facets
에서 현재 JAVA 를 현재 사용하는 JRE 로 바꿔주면 됩니다.

조치 2.

Dynamic Web Project 로 Project를 만들지 않습니다.

해결

Facets 에 있는 Java 의 셋팅을 현재 사용하는 JRE 버전으로 바꿔주면 됩니다.