jsp파일 상단에 위와 같은 코드를 삽입하여
request 객체를 euckr로 인코딩 시키고,
한글 경로명이 들어가도록 하였으나,
문제는,, 기본적으로 html 태그에서는
한글로된 경로는 읽지를 못한다..
여기저기 뒤적거리며 방법을 찾다가
익스플로러 옵션 고급 텝에서
'UTF-8로 URL보내기'를 체크하여 해결.
스트럿츠에서 자공하는 파일업로드 유틸을 사용할 경우
데이터 베이스에 한글 파일명은 깨져서 기입되는데,
결국은 방법을 찾아내었다.
다음과 같이 필터를 사용하면 된다.
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>