Struts 파일 업로드 유틸 사용시 한글 파일명 깨짐 문제

|

스트럿츠에서 자공하는 파일업로드 유틸을 사용할 경우
데이터 베이스에 한글 파일명은 깨져서 기입되는데,
결국은 방법을 찾아내었다.
다음과 같이 필터를 사용하면 된다.


package study.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class EncodingFilter implements Filter {
   
    private String encoding = null;
    protected FilterConfig filterConfig = null;
   
    public void destroy() {
        this.encoding = null;
        this.filterConfig = null;
    }
   
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
        if(request.getCharacterEncoding() == null) {
            if(encoding != null) {
                request.setCharacterEncoding(encoding);
            }           
        }
       chain.doFilter(request, response);
    }   
   
    public void init(FilterConfig filterConfig) throws ServletException {
         this.filterConfig = filterConfig;
         this.encoding = filterConfig.getInitParameter("encoding");
    }
   
    public FilterConfig getFilterConfig() {
        return filterConfig;
    }
   
    public void setFilterConfig(FilterConfig cfg) {
        filterConfig = cfg;
    }  
}


위와같이 클래스를 생성하고
web.xml에서 필터를 등록한다.


    <web-app>


        <filter>
            <filter-name>Encoding Filter</filter-name>           
            <filter-class>study.filter.EncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>EUC-KR</param-value>           
            </init-param>
        </filter>

        <filter-mapping>
            <filter-name>Encoding Filter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>


    </web-app>

And

innerHTML을 사용할 시에

|

타겟으로 사용되는 <div>태그에 제대로 내용이 나타나지 않았는데,

<tr><td>로 묶어주니 제대로 표현이 되었다.

<tr><td>
      <div id="photos"> </div>
  </td></tr>

이런식으로.

And

서블릿을 이용할때 iframe resize가 안되는 경우..

|
외부에서 서블릿.do?action=액션명 이런식으로 접근할 필요가 생겼다. 그런데..

인터넷에 돌고 있는 아이프레임의 리사이즈 함수들은
서블릿을 통해 부모페이지가 로드될경우 리사이즈 되지가 않는다.
(왜그런지는 모르겠으나.. 크기를 제대로 잡지 못한다.)


<script>
    var ifrContentsTimer;
    function resizeRetry() { //로딩 완료후 다시한번 리사이즈
    if(document.body.readyState == "complete") {
    clearInterval(ifrContentsTimer);
    } else {
    resizeFrame();
    }
    }
   
    function resizeFrame(){ //로딩 즉시 리사이즈
    self.resizeTo(document.body.scrollWidth + (document.body.offsetWidth-document.body.clientWidth), parseInt(document.body.scrollHeight)+10);
    }
</script>


<body onload="resizeFrame();ifrContentsTimer = setInterval('resizeRetry()', 100);">


아이프레임에 들어갈 문서(자식 페이지)에 위 내용을 추가/수정한다.
아마도 서블릿 매핑하는 과정이 오래걸려서?? 로딩이 완료되지 않은 상태로
리사이즈 되는 모냥이다.

'작업노트 > HTML & Script' 카테고리의 다른 글

아이프레임 리사이즈 문제 해법  (0) 2008.01.05
name과 id의 차이  (0) 2007.09.15
GET방식으로 한글 보내는 방법  (0) 2007.09.04
innerHTML을 사용할 시에  (0) 2007.08.29
HTML 객체 계층도  (0) 2007.05.31
And