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