스프링 프로젝트를 생성하고 샘플 코드를 실행하면 한글이 깨져서 나옵니다.
아래와 같이 한글이 깨지네요.
바로 UTF-8 설정이 안되어 그런건데요.
해결 방법은
1. JSP파일에 인코딩 정보를 추가해 줍니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>
<P> The time on the server is ${serverTime}. </P>
</body>
</html>
위 굵은 부분을 추가해 줍니다.
다른 방법으로
2. web.xml 에 인코딩 정보를 추가해 줍니다.
<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>
위 셋팅을 web.xml에 추가합니다.
특히 forceEncoding 부분을 같이 넣어주면 각 JSP파일에 인코딩 부분을 추가하지 않아도 강제 인코딩이 적용됩니다.
스프링이 아닌 단순 웹 프로젝트인 경우
server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
를 추가하여 한글 URL을 사용할 수 있습니다.