処理の流れを解説!サーブレット・フィルタとは【初心者向け】
初心者向けにJavaでサーブレットフィルタを使う方法について解説しています。これはサーブレット処理の前後に指定の処理を行うことができるものです。実践的な内容も踏まえながら練習していきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、サーブレット フィルタについて解説します。
サーブレット フィルタを利用する場合と利用しない場合の処理の違いについて説明しています。ぜひ参考にしてみてください。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
サーブレットフィルタの使い方について詳しく説明していくね!
お願いします!
サーブレット フィルタとは
サーブレット・フィルタ(Servlet Filter)とは、サーブレットコンテナを呼び出した後、サーブレットコンテナが実行されるまでの間に様々な機能を実行することができる機能です。
サーブレットコンテナについての記事も参考にしてみて下さい。
Java Servletとは
Java Servletを利用することで、Java言語をWebアプリケーションとして動作させることが容易にできます。
Java Servletの代表的な機能は、クライアントからサーバーに対して送られたリクエストを受け取り、サーバーからクライアントにレスポンスを送信する事ができます。
サーブレットフィルタを利用しない場合
サーブレットフィルタを利用しない場合、Java Servletを利用したシステムは次のようにサーブレットコンテナで実行されます。
サーブレットフィルタなし
Java Servletを呼び出す ↓ Java Servletを実行する
解説
Java Servletを呼び出して、Java Servletを実行しています。
非常にシンプルな処理です。
言い換えればこれだけしかしていません。
サーブレットフィルタを利用する場合
それでは、サーブレットフィルタを利用するとどうなるでしょうか。
サーブレットフィルタあり(スマホゲームの例)
Java Servletを呼び出す ↓ サーブレットフィルタ1(会員ログイン処理) ↓ サーブレットフィルタ2(ログイントロフィー処理) ↓ サーブレットフィルタ3(ログインログ処理) ↓ Java Servletを実行
解説
最初の、Java Servlet呼び出しでJava Servletを呼び出します。
次の、サーブレットフィルタ1(会員ログイン処理)では、会員としてログインを行う処理を行います。
次の、サーブレットフィルタ2(ログイントロフィー処理)では、会員としてログインした連続回数等を計算し、トロフィーを送るかどうかの判断処理を行います。
次の、サーブレットフィルタ3(ログインログ処理)では、ログインした会員のログを記録する処理を行います
最後に、Java Servletを実行します。
この様に、単にサーブレットを実行することに比べて、様々な処理を細かく加えることが出来ます。
そして、その処理ごとに予めフィルタを作成しておくことで、非常に柔軟なシステム構成にする事が可能です。
実務での利用
サーブレットフィルタを実務で利用する場合は、よく行う処理をフィルタとして予め用意することで、システム全体の構成を分かりやすくするだけでなく、Webアプリケーションとしての実装上の不具合を防ぐことが可能です。
実装方法の手引き
java.servlet.Filterインタフェースを実装したクラスを作成します。
クラスの中身には次の3点を実装しておきます。
void init() 初期化処理 void doFilter() フィルタ処理 void destroy() 終了処理
Javaのクラス(Class)についての記事も参考にしてみて下さい。
今回は、サーブレット フィルタについて解説しました。
入門向けJavaの学習サイトもまとめているので、合わせてご覧ください。
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。