生活のフィルター: 浄水器、空気清浄機、バンディット、ウェブ フィルター: サーバー リソースにアクセスするとき、フィルターはリクエストをインターセプトし、いくつかの特別な機能を実行できます。フィルターの機能:
は通常、一般的な操作を完了するために使用されます。例: ログイン検証、統合エンコード処理、機密文字フィルタリング...
ステップ
1. クラスを定義して実装するインターフェイス Filter
2. メソッドのコピー
##3. インターセプト パスの構成コード
@WebFilter("/*")//访问所有资源之前,都会执行该过滤器 public class FilterDemo1 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("filterDemo1被执行了...."); //放行 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
web.xml 構成
<filter> <filter-name>demo1</filter-name> <filter-class>cn.zjq.web.filter.FilterDemo1</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <!-- 拦截路径 --> <url-pattern>/*</url-pattern> </filter-mapping>
実行プロセスのフィルタリング
##戻って、フィルター リリース コードの下のコードを実行します
##フィルター ライフ サイクル メソッド
## init: サーバーの起動後、Filter オブジェクトが作成され、init メソッドが呼び出されます。実行されるのは 1 回だけです。リソースのロードに使用されます
特定のリソース パス: /index.jsp フィルターは、index.jsp リソースにアクセスする場合にのみ実行されます。
dispatcherTypes 属性の設定
リクエスト: デフォルト値。ブラウザはリソースを直接リクエストします
#INCLUDE: アクセス リソースが含まれます
エラー: リソースのジャンプ中にエラーが発生しました
フィルターチェーン (複数のフィルターを設定)
実行順序: 2 つのフィルターがある場合: フィルター 1 とフィルター 2
Filter1
フィルター 2
リスナー: リスナー
: Web の 3 つの主要コンポーネントの 1 つ。イベント リスニング メカニズム
##リスナー: オブジェクト
: このメソッドは、ServletContext オブジェクトが破棄される前に呼び出されます
void contextInitialized(ServletContextEvent sce)Configuration# #web.xml
<listener> <listener-class>cn.zjq.web.listener.ContextLoaderListener</listener-class> </listener>
注:
以上がJava でフィルターとリスナーを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。