JavaRush /Java Blog /Random-KO /CharacterEncodingFilter를 사용하여 Spring에서 인코딩 요청
Core
레벨 35
Екатеринбург

CharacterEncodingFilter를 사용하여 Spring에서 인코딩 요청

Random-KO 그룹에 게시되었습니다
안녕 좋은 사람! 소개 웹 애플리케이션에서 러시아어 문자가 잘못 표시되는 매우 일반적인 문제가 있습니다. 나는 기사를 읽고 악의 근원과 걸림돌을 이해했습니다. JSP 페이지에서 이러한 행이 필요한 이유와 클라이언트-서버 -DB 체인 의 데이터 전송 단계를 깨달았습니다 . <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 내 주요 문제는 한 좋은 기사에 설명된 내용에 있었습니다(출처: Tyts ) .
관리자가 구축한 서버는 다음과 같습니다. 그리고 이것은 관리자가 구축한 서버에서 실행되는 웹 애플리케이션입니다. 그리고 이것은 관리자가 구축한 서버에서 실행되는 웹 애플리케이션의 일부인 서블릿입니다. 또는 동일한 서블릿인 JSP입니다. 그리고 이 서블릿은 요청을 받습니다. 그리고 여기에는 데이터가 포함되어 있습니다. 어느? 바이트 집합입니다. 서블릿에는 무엇이 필요합니까? 기호. 질문: 어떤 인코딩을 사용해야 합니까? HTTP에 대한 또 다른 여행. POST 메서드를 사용할 때 양식의 데이터는 특정 콘텐츠 유형을 나타내는 전송됩니다: Content-type: application/x-www-form-urlencoded 이론적으로 전송된 데이터의 인코딩은 여기에서 지정할 수도 있습니다: Content-type: application/ x-www-form-urlencoded; charset=UTF-8 어쨌든 Tomcat은 여기에서 이를 가져오려고 합니다. 실제로는 Opera만이 인코딩을 지정합니다. 어쩌면 미래에 뭔가 바뀔 수도 있지만 현재로서는 사실은 다음과 같습니다. 들어오는 데이터의 인코딩을 알 수 없습니다! 그리고 이에 대해 뭔가 조치를 취해야 합니다.
해결책은 필터를 사용하는 것입니다. 여기에 잘 쓰여 있고 그게 내가 한 일입니다. (출처: tyts ) 이 구성 코드를 web.xml에 삽입했습니다. 이제 모든 것이 괜찮고 기본적으로 만족스럽습니다. 하지만 이 필터는 Spring 주석을 통해 구성하고 싶습니다 . Java 클래스를 사용하는 다른 구성. 그리고 나는 어떻게든 통일성을 원한다. 2개의 구성 클래스가 있습니다. 하나는 애플리케이션을 구성하고 다른 하나는 애플리케이션 컨텍스트(종속성 주입)를 구성합니다. 첫 번째 클래스의 코드는 다음과 같습니다. 이 클래스에 필터 구성을 삽입해야 한다고 생각하는데 코드에 뭔가 약간 문제가 있습니다. 웹 애플리케이션에 대한 첫 경험이므로 경험이 많은 분들의 도움을 요청합니다. 감사합니다. characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true characterEncodingFilter /* package net.kaa.todolist.config; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration; public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext(); appContext.register(ApplicationContextConfig.class); ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION