JAvaフィルタ<br>タブで行います.<br>さぎょう


2.4バージョンのservlet仕様は、REQUEST、FOrWARD、INCLUDE、およびERRORの4つの可能な値を持つ要素を部属記述子に新たに追加した.要素に任意の数のを加えることで、filterはクライアントから直接来たrequest、forwardから来たrequest、includeから来たrequest、およびから来たrequestに作用します.要素が指定されていない場合は、デフォルト値はREQUESTです.次のいくつかの例で理解を助けることができます.
 
例1:
<filter-mapping>
    <filter-name>Logging Filter</filter-name>
    <url-pattern>/products/*</url-pattern>
</filter-mapping>

この場合、フィルタは、クライアントから直接送信された/products/...から始まるリクエストに作用します.ここでは要素は一切制定されていないので、デフォルト値はREQUESTです.
 
例2:
<filter-mapping>
    <filter-name>Logging Filter</filter-name>
    <servlet-name>ProductServlet</servlet-name>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>

この場合、リクエストがrequest dispatcherのincludeメソッドによって渡されたProductServiceletに対するリクエストであれば、このフィルタのフィルタを通過します.このフィルタは、クライアントから直接来たProductServiceletに対する要求など、他のものは必要ありません.フィルタのマッチング方法を指定するには、url-patternを直接指定する方法と、指定したservletに対応するurl-patternをフィルタのマッチングモードとする方法の2つがあります.filterのパスマッチングはservletと同じであり、servlet仕様の「SRV.1.2 Specification of Mappings」のセクションの説明に従います.
 
例3:
<filter-mapping>
    <filter-name>Logging Filter</filter-name>
    <url-pattern>/products/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

この場合、リクエストが/products/...で始まり、request dispatcherのforwardメソッドで渡されたり、クライアントから直接渡されたりした場合は、このフィルタを通過する必要があります.