반응형
스프링에서 신나게 코딩을 한 후 실행했는데, 아래와 같이 한글이 깨지는 경우가 있다.
이는 Eclipse 혹은 STS에서 설정이 잘못되어 있기 때문에 발생한 현상이다.
아래와 같이 조치해주도록 하자.
1. 설정에서 인코딩 방식을 UTF-8로 바꿔준다.
아래와 같이, 프로젝트의 Windows-Preferences로 진입한 후에,
'Web' 카테고리 아래의 CSS Files, HTML Files, JSP Files의 인코딩 방식을
모두 UTF-8로 설정해 준다.
2. 기본 브라우저를 크롬(chrome)으로 바꿔준다.
만약 기본 브라우저를 아직도 STS 내부 브라우저를 사용하고 있다면,
아래와 같은 설정을 통해 외부 브라우저인 크롬을 사용해주도록 하자.
3. web.xml에 한글깨짐 방지 코드를 삽입해준다.
아래와 같이, web.xml에 코드를 삽입해줌으로써 한글깨짐을 방지할 수 있다.
<servlet-mapping> 태그 밑에 넣으면 된다.
코드는 아래와 같다.
<!-- 한글깨짐 방지 -->
<!-- filter와 filter-mapping을 만들어 준다. -->
<filter>
<!-- filter안에는 filter-name, filter-class, init-param을 추가해 준다.
filter-name은 원하는대로 지정해도됨 -->
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<!-- encoidng값을 UTF-8로 만들어 준다. -->
<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>
4. JSP 파일에 다음의 코드를 삽입한다.
마지막으로, JSP 파일에서 UTF-8 코드를 사용하겠다는 명시를 통해
한글이 정상적으로 출력되도록 할 수 있다.
코드는 아래와 같다.
<%@ 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>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
<h1>
Hello world!
</h1>
<P> The time on the server is ${serverTime}. </P>
</body>
</html>
반응형