Servlet Filter
Filterとは?
Filterの例
public class CharacterEncodingFilter implements Filter {
FilterConfig config;
@Override
public void init(FilterConfig filterConfig) throws ServletException{
this.config = filterConfig;
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding(config.getInitParameter("encoding"));
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy(){}
}
init()
Init()メソッドでは、フィルタオブジェクトが作成され、準備作業のために一度だけ呼び出されます.サーブレットのinit()と同じ用途です.パラメータはFilterConfigの例です.この例では、フィルタ初期化パラメータの値を取り出すことができます.上記のコードは、doFilter()で使用するためにインスタンス変数configに格納されます.
doFilter()
フィルタとマッピングされたURLへのアクセスを要求するたびにdoFilter()が呼び出されます.このメソッドでは、フィルタが実行するタスクが作成されます.
filterChain次のフィルタfilterChainを指すdoFilter()は、次のフィルタを呼び出します.次のフィルタがない場合は、サーブレットのサービス()が内部から呼び出されます.
Webアプリケーションを閉じる前に、サーブレットコンテナはdestory()を呼び出してフィルタを終了します.
フィルタの駆動プロセス
配置フィルタ(Deployment)
フィルタの配置方法はwebです.xmlには設定方法があり、コメントには設定方法があります.
web.xmlでレイアウト情報を設定する
<!-- 필터 선언 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.test.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<!-- 필터 URL 매핑 -->
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
:フィルタ別名の設定:パッケージ名を含むフィルタ・クラスの作成
:フィルタで使用する静的データの設定
:フィルタを使用するURLのマッピング
:フィルタ別名の指定
:フィルタを適用するURLを指定します./*指定すると、すべてのリクエストにフィルタが適用されます.
位置決め情報の設定
@WebFilter(
urlPatterns = "/*",
initParams = {
@WebInitParam(name="encoding", value = "UTF-8")
}
)
以下に示すように、フィルタクラスに@WebFilterアクションを追加します.
urlPatternsで指定した値は親と同じである必要があります.
フィルタの例
前処理(サーブレットの実行前)
実行後タスク(起動後)
文字セットの設定
解凍
圧縮応答データ
暗号化データの復号化
レスポンスデータ暗号化
ログの作成
ユーザーの検証
ユーザー権限の検証
Reference
この問題について(Servlet Filter), 我々は、より多くの情報をここで見つけました https://velog.io/@bey1548/Servlet-Filterテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol