-
[Spring] 한글설정, UTF-8설정Web/Servlet && Spring 2019. 8. 13. 01:50
GET방식은 요즘 한글 처리가 잘된다. 하지만 post방식은 한글 처리를 따로 해줘야 한다.
page 인코딩이 utf-8로 되어 있어도 post로 요청시 한글이 깨져서 들어온다.
POST요청시 UTF-8로 넘기겠다는 설정은
1. Servers프로젝트의 server.xml에서 한다.
<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"/>
각각 해당하는 63, 108번 라인에 URIEncoding="UTF-8"를 추가해준다.
2. web.xml 리스너 위에 filter 추가
<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>*.do </url-pattern> </filter-mapping>
@RequestParam 사용방법
@RequestMapping(value = "/tok.do", method = RequestMethod.POST) public String tok(Locale locale, Model model, @RequestParam("id") String id) {//속성중id가진 아이를 id에 담아라 logger.info("id>>>{}", id); model.addAttribute("serverTime", id );//한글깨짐 //여기까진 컨트롤러 return "home";//viewResolver 어떤 뷰를 보여줄지, 결과를 어떤 화면에 보여줄지 }
@RequestParam("id") 값을 String id로 선언한다. 이렇게 편리한 것이 있다니..
여담..
실행시 뒤에 .do가 붙는 이유?
스트럿츠에서는 확장자를 .do로 사용하라고 가이드 라인에 표기되어 있다.
왜? 다른 서블릿과 URL 충돌을 막기 위해서 이다.
현재는 관행으로 남아있다.
반응형'Web > Servlet && Spring' 카테고리의 다른 글
[Spring] 레거시 프로젝트 만들기 (Legercy Project) (0) 2019.08.21 [Spring] 스프링 프레임 워크 개념 (0) 2019.08.20 [Spring] 스프링 beans.xml 열수 없다는 에러 (0) 2019.08.11 [Spring] The type org.springframework.core.io.Resource cannot be resolved 에러 해결 (0) 2019.08.11 [Spring] Life Cycle (0) 2019.08.11