[SPRING] 매개 변수 인코딩 가져 오기
SPRING매개 변수 인코딩 가져 오기
Spring MVC와 GET 요청의 특수 문자를 사용하는 데 문제가 있습니다. 다음 방법을 고려하십시오.
@RequestMapping("/update")
public Object testMethod(@RequestParam String name) throws IOException {
}
예를 들어 "ä"(독일어 움라우트)를 포함하는 이름으로 GET 요청을 보냅니다. 브라우저는 "ä"를 % C3 % A4에 매핑하기 때문에 "¤¤"을받는 결과를 얻습니다.
그렇다면 컨트롤러에서 올바른 인코딩 된 문자열을 얻으려면 어떻게해야합니까?
당신의 도움을 주셔서 감사합니다!
해결법
-
==============================
1.이건 어때? 도움이 될까요?
이건 어때? 도움이 될까요?
귀하의 web.xml에서 :
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>com.example.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <servlet-name>dispatcher</servlet-name> </filter-mapping>
com.example.CharacterEncodingFilter :
public class CharacterEncodingFilter implements Filter { protected String encoding; public void init(FilterConfig filterConfig) throws ServletException { encoding = filterConfig.getInitParameter("encoding"); } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; request.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { encoding = null; } }
-
==============================
2.이 요청은 본문 인코딩과 URI 인코딩간에 차이가 있기 때문에이 문제가 발생합니다. CharacterEncodingFilter는 본문 인코딩을 설정하지만 URI 인코딩은 설정하지 않습니다.
이 요청은 본문 인코딩과 URI 인코딩간에 차이가 있기 때문에이 문제가 발생합니다. CharacterEncodingFilter는 본문 인코딩을 설정하지만 URI 인코딩은 설정하지 않습니다.
Tomcat server.xml의 모든 커넥터에서 URIEncoding = "UTF-8"을 속성으로 설정해야합니다. 여기를 참고하십시오 : http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html
또는 useBodyEncodingForURI = "True"로 설정할 수 있습니다.
maven tomcat 플러그인을 사용하는 경우이 매개 변수를 추가하십시오.
mvn -Dmaven.tomcat.uriEncoding = UTF-8 tomcat : 실행
from https://stackoverflow.com/questions/5445990/get-parameter-encoding by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring은 추상 클래스 내에서 autowire 할 수 있습니까? (0) | 2018.12.19 |
---|---|
[SPRING] 석영 : 절대로 실행하지 않을 Cron 식 (0) | 2018.12.19 |
[SPRING] Postman rest client에서 spring csrf 토큰을 보내려면 어떻게해야합니까? (0) | 2018.12.19 |
[SPRING] 다중 데이터베이스 스키마를 사용하는 JPA (0) | 2018.12.19 |
[SPRING] 스프링 데이터 저장소에서 Spring의 선언적 캐싱 지원을 테스트하는 방법은 무엇입니까? (0) | 2018.12.19 |