Javaで文字化けを防ぎたいのですが、プロジェクト全部の文字化けを一気に防ぐ方法ってありますか?
このような質問がありますが、結論から言うと「フィルター」というものを使えば可能です。
今回はフィルターの使い方と設定の方法、そして細かい点についても紹介していきます。
フィルターってそもそも何?
フィルターとはWebブラウザからのリクエストがサーブレットに届く前、届いた後レスポンスがWebブラウザに届くまでの間に特定の処理をしてくれる機能です。
このフィルターは何個も設定できます。
メリットとしては、フィルターマッピングを全てに適用する選択をすれば、全てのサーブレットの処理に適用できるので一気に文字化けを防ぐこともできます。
文字化け用フィルターを作成する手順
まずはsrcを選択して、フィルターを作ります。
クラス名は適当で大丈夫です。
フィルターマッピングはURLパターンを「/*」 に変更しておきましょう。
以上で設定は完了です。
そのほかは完了で大丈夫です。
chain.doFilter(request, response);の前後で処理を分ける
chain.doFilter(request, response);より前に実行したい動作を記述するか後に記述するかで動作が変わります。
これより前に書いた処理はサーブレットが処理を実行する前にフィルタの処理が実行されます。
逆に、これより後に書いた処理はサーブレットが処理を実行した後にフィルタの処理が実行されます。
文字化けを防ぐための、文字エンコードの設定はサーブレットが処理を実行する前にしておきたいので
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
は
chain.doFilter(request, response);
の前に記述しておきましょう。
質問:implementsが実装するインターフェースはどこにあるのでしょうか?
inplementsが存在するのに、インターフェスが見当たらない。。
一体どこに存在するのだろう。
そう思った方はなかなかに基本をしっかり勉強されてますね笑
これはTomcatに組み込まれているAPIの中に含まれています。
ソースタブ上で「F3 」キーでインターフェスを定義しているところにジャンプできます。
(ジャンプできない時はfnキーも一緒に押してみてください)
今回は文字化けを防ぐためのフィルターの作り方を紹介していきました。
フィルタを使いこなすことができると便利なのでこの際にしっかり習得できるようにしましょう。