JSPの「ブロッキング」

3743 ワード

フィルタ
JSPには実はブロッキングが存在しないので、フィルタと呼ぶのがもっと適切かもしれません.Filterを作成するには、3つの方法で実装する必要があるFilterインタフェースを実装する必要があります.
//    Filter    
void init(FilterConfig config);
//      ,                 
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);
//  Filter
void destory();

次に、このクラスの実装を行います.
@WebFilter(filterName="log",urlPatterns={"/*"})
public class LogFilter implements Filter{
    private FilterConfig config;
    public void init(FilterConfig config){
        //         
    }
    public void destory(){
        //         
    }
    public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain) throws Exception{
        //       
        chain.doFilter(reqeuest, response);//  Filter         
        //        request.getRequestDispatcher("    ").forward(request,response)       
        //       
    }
}

注記ベースの構成ですが、xmlファイルで構成することもできます.
<filter>
    <filter-name>filternamefilter-name>
    <filter-class>   filter-class>
filter>
<filter-mapping>
    <filter-name>logfilter-name>
    <url-pattern>/*url-pattern>
filter-mapping>

filterの構成とサーブレットの構成は非常に似ていると言わざるを得ない.
リスナー
「ダミーブロッカー」の1つであるフィルタを言い終わると、「偽ブロック」についてお話しします「2つ目のリスナー.リスナーといえば、サーブレットにはいくつかのリスナーが使用できます.1.サーブレットContextAttributeListenerとサーブレットContextListener.前者はWebアプリケーションの起動と停止を傍受し、後者はサーブレットContext、すなわちアプリケーション範囲内の属性の変化を傍受するために使用されます.2.サーブレットRequestListenerとサーブレットRequestAttributeListener、前者はリスニング要求の到着に用いる、後者はrequest範囲内の属性の変化をリスニングするために用いる.HttpSessionListenerとHttpSessionAttributeListener、前者はsessionの作成と破棄に用いられ、後者はsession範囲内の属性の変化を傍受するために用いられる.我々のすべてのSevletの特殊なインタフェースの実現と同様に、我々は特定のインタフェースを実現するだけでなく、登録を行う必要がある.リスナーの登録は簡単で、クラスに@WebListenerを追加するだけでよい.同時に、リスナーの実装は一意ではないことに注意する必要があります.すなわち、1つのリスナークラスが複数のリスナーインタフェースを実装できることに注意してください.