Spring framework 프로젝트 UTF-8 설정.
ITWeb/개발일반 2012. 3. 13. 18:38[참고사이트]
[기본]
- eclipse 설정
- web.xml
- servlet-context.xml
- DB 설정
- WAS 나 Web Server 설정
[참고사이트 글 스크랩]
1. Tomcat 및 서블릿 컨테이너 encoding 설정
$CATALINA_HOME/conf/server.xml (이클립스 IDE를 사용한다면 Servers폴더 밑에 server.xml)을 수정한다.
Connector에 URIEncoding="UTF-8" 을 추가한다.
2. web.xml에 encoding filter를 만든다.
filter-class : org.springframework.web.filter.CharacacterEncodingFilter
3. ViewResolver의 property 속성중에 contentType을 UTF-8로 추가한다.
4. JSP페이지의 contentType을 UTF-8로 설정한다. 그리고 HTML의 content을 UTF-8로 설정한다.
==========================================================================================================================
==========================================================================================================================
개발을 하다보면 캐릭터셋문제로 골머리를 앓는 경우가 많이 있다. 필자는 그래서 신규로 프로젝트를 시작할 경우 아예 모든 환경을 UTF-8로 셋팅해 버린다. 물론 UTF-8까지 필요가 있을까 하는 생각을 할 수도 있지만 나중에 다국어환경을 고려해도 아예 UTF-8로 시작하는게 나쁜 방법은 아닌것 같다.
다음은 UTF-8로 개발환경을 셋팅하는 방법이다.
1. 이클립스의 Content type을 UTF-8로 설정
- 이렇게 설정하면 해당하는 type을 파일로 저장할 때 UTF-8형식으로 저장하게 된다.
2. Workspace의 Text file encoding을 UTF-8로 선택
- 이렇게 설정해야 svn의 소스비교시 캐릭터셋이 깨지는 문제를 막을 수 있다.
3. 데이터베이스 인스턴스를 UTF-8형태로 생성
- Mysql같은 경우 아래와 같은 방식으로 생성하면 된다.
4. web.xml에 아래와 같이 인코딩 필터 셋팅
- 서블릿과 통신할 때 데이터를 주고 받는 것에 대한 인코딩을 설정하는 부분이다.
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</filter>
5. 톰캣설치디렉토리의 /conf/server.xml 에 URIEncoding 항목 추가
- WAS와 get방식으로 데이터를 주고받는 것에 대한 인코딩 설정부분이다.
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
6. JSP파일의 최상단에 UTF-8 directive 추가
- JSP컴파일시 사용할 인코딩을 설정하는 부분이다.
7. JSP파일의 meta태그에 UTF-8추가
- 브라우저에서 인식할 캐릭터셋을 설정하는 부분이다.
8. 메이븐을 쓴다면 다음과 같이 plugin에 UTF-8 설정을 추가해 준다.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<encoding>UTF-8</encoding>
<quiet>true</quiet>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
<configuration>
<sourceEncoding>utf-8</sourceEncoding>
<targetJdk>1.5</targetJdk>
<minimumTokens>10</minimumTokens>
</configuration>
</plugin>
[출처] Spring framework 및 일반 프로젝트 UTF-8 설정|작성자 마루아라