JavaRush /Java Blog /Random-JA /CharacterEncodingFilter を使用して Spring でエンコードをリクエストする
Core
レベル 35
Екатеринбург

CharacterEncodingFilter を使用して Spring でエンコードをリクエストする

Random-JA グループに公開済み
こんにちは、いい人です! はじめに Web アプリケーションでロシア語の文字が正しく表示されないという、非常によくある問題があります。記事を読んで諸悪の根源とつまずきを理解しました。これらの行がなぜ JSP ページに必要なのか、そしてクライアント - サーバー - DB チェーンのデータ転送のどの段階で必要なのかを理解しました。私 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> の主な問題は、ある優れた記事 (出典: Tyts ) で説明されている内容にありました。
こちらが管理人が構築したサーバーです。これは、管理者が構築したサーバー上で実行される Web アプリケーションです。これは、管理者が構築したサーバー上で実行される Web アプリケーションの一部であるサーブレットです。または、同じサーブレットである 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 つの構成クラスがあります。1 つはアプリケーションを構成し、もう 1 つはアプリケーション コンテキスト (依存関係の注入) を構成します。これが最初のクラスのコードです。 フィルター設定をこのクラスに挿入する必要があると思いますが、コードに少し問題があります。私にとって Web アプリケーションは初めての経験なので、経験豊富な方に助けを求めています。ありがとう。 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