Java/Spring

[Spring] MyBatis 한글 깨짐 해결법

jwKim96 2019. 7. 22. 10:05

1. web.xml 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<filter>
    <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>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
cs

프로젝트의 web.xml에 다음과 같은 필터를 적용해 준다.

이 Filter는 POST로 오는 요청에 대해 인코딩을 수행한다.

 

만약 GET으로 오는 요청도 한글 처리가 필요하다면, 서버의 Server.xml 설정도 필요하다.

 

Server.xml 설정

1
2
3
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"URIEncoding="UTF-8"/>
cs

 

2. MyBatis 설정 - db url설정(mysql)

1
url : jdbc:mysql://서버주소:3306/디비이름?useUnicode=true&characterEncoding=utf8
cs

 

 

 

 

추가로 한글깨짐 관련 도움되는 설정...

# @ResponseBody 응답시 설정

 

@RequestMapping(value="/something", produces="text/plain; charset=UTF-8")

@ResponseBody

 

@RequestMapping(value="/something", produces="application/json; charset=UTF-8")

@ResponseBody

 

 

# Eclipse Workspace, 파일 Encoding 설정

preference->general->workspace UTF-8 Setting (default : MS949)

preference->web->CSS UTF-8 Setting (default : EUC-KR)

preference->web->HTML UTF-8 Setting (default : EUC-KR)

preference->web->JSP UTF-8 Setting (default : EUC-KR)