본문 바로가기

Programming/SPRING

Spring에서 post 방식으로 전달 시 한글 깨짐 해결(form데이터 전송)

이번 포스팅은 스프링 MVC 환경 설정중

한글깨짐 현상을 해결하기 위한방법을 포스팅 하도록 하겠습니다.

테스트를 위하여 form submit 테스트를 해보겠습니다.


Controller

1
2
3
4
5
6
7
8
9
10
@RequestMapping("/form")
public String form(){
    return "form";
}
     
@RequestMapping("/submit")
public String submit(HttpServletRequest request, Model model){
    model.addAttribute("text",request.getParameter("text"));
    return "submit";
}
cs


2개의 컨트롤러를 추가 하였습니다.

form url은 입력폼이 들어있는 페이지입니다.

submit은 form페이지에서 입력받은 text태그의 내용을 출력하는 화면입니다.

각 페이지를 다음처럼 작성합니다.


form.jsp

1
2
3
4
5
<h3>폼전송</h3>
<form action="/submit" method="post">
    <input type="text" name="text" />
    <input type="submit" value="전송"/>
</form>
cs




실행결과 한글깨짐이 발생합니다.

1
request.setCharacterEncoding("utf-8");
cs

submit 컨트롤러에 위와같이 설정을 해주면 한글을 깨지지 않겠지만 
각 컨트롤러마다 추가를 해줄 수 없으므로 web.xml파일의 web-app 태그내에 
다음과 같이 코드를 추가해주도록 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>
</filter>
<filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
cs


코드를 추가하셨다면 form URL을 재호출하여 한글전송을 테스트 해보도록 하겠습니다.


정상적으로 한글 출력이 잘되네요.
다음은 파일전송에 대하여 포스팅 하도록 하겠습니다.