基本を学ぶためのフィルターとリスナー(A)

それは、フィルタとリスナーも初心者のために、この記事を書くの主な目的は、コンテンツフィルタとリスナーの理解、いくつかのように専門的かつ包括的でない説明を容易にすることである、私と一緒に負担してください。

A、fileter概要

そのフィルタフィルタこれは、主のために、Javaweb 3つの成分の一つであるリソースをフィルタリングするが、資源は主にフィルタに反映されインターセプト処理要求し、クライアントとサーバーの応答。
fileter缶インターセプト要求と応答ので、そのようなログインの検証、テストなどに敏感なキャラクターとして、いくつかの一般的なフィルタ操作によって行うことができます。

二つ、簡単な使用をフィルタリング

(1)フィルタを作成

最初のクラスを作成する必要があり、フィルタを作成し、達成するために行きますFilterインタフェース、そして最後に複製方法は、インターフェースの側に対応します。
IDEAで以下に示すように直接、新たなフィルタを選択することができます。
ここに画像を挿入説明

簡単なコードの例(2)フィルタであります

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/*")  //"/*表示访问所有资源之间,都会执行改过滤器"
public class FilterTest1 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("filterTest1被执行了");

        //在进行相应处理后,对请求或相应放行
        filterChain.doFilter(servletRequest,servletResponse);

    }

    @Override
    public void destroy() {

    }

}

これは== @ WebFilterで、それを注意すべきですデフォルト値は、コメント内であります==インターセプトパスは、ここにインターセプト全てに「/ *」の手段です。
さらに、対応する治療に対する要求または応答をインターセプトし、後の要求または応答を許可するかどうかを検討します。

三、リスナーの概要

そのリスナーモニターまた、Javawebの3つの成分の一つです。そこでのJava GUIプログラミングイベント・リスナーここでのコンセプトは似て、イベントリスナーによって処理することができ、ここでの治療は、主のHttpServletRequest、HttpSessionのとのServletContextを目的としています。
これらのオブジェクトは、準備処理対象リスナーを監視することによって達成され、その特性に応じて対応する動作を行うことができます。

四、リスナーの簡単な使用状況

リスナーの治療を受けているオブジェクトによっては、リスナーによって作成されたインタフェースが異なる達成するために、ここにServletContextListenerインタフェースたとえば、あなたが実際にWebアプリケーションのライフサイクルを聴取しているServletContextオブジェクトのライフサイクルを監視することができます。
対応するコードは以下の通りです:

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener()
public class ListenerTest1 implements ServletContextListener{

    /**
     * 监听ServletContext对象创建的。ServletContext对象服务器启动后自动创建。
     *
     * 在服务器启动后自动调用
     */
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {

        System.out.println("ServletContext对象被创建了。。。");
    }

    /**
     * 在服务器关闭后,ServletContext对象被销毁。当服务器正常关闭后该方法被调用
     */
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext对象被销毁了。。。");
    }
}

参考資料

ここに画像を挿入説明
2020年2月17日

公開された52元の記事 ウォン称賛59 ビュー6820

おすすめ

転載: blog.csdn.net/ataraxy_/article/details/104357873